안드로이드 개발 질문/답변
(글 수 45,052)
음악 파일의 재생시간을 가져와서 플레이하는데 있어서 getDuration()을 사용하는데 이상하게
제대로 못받아오는거 같아서 질문 드립니다.
1. getDuration() 값은 play() 하고 난 다음에 불러와야 읽어오나요? 왜냐면 플레이리스트에 재생시간을 넣을려고 하는데 자꾸만 이상한 값만 가져오네요? 어떻게하면 리스트에 재생시간을 제대로 표시할 수 있을까요?
2. 첨부한 음악파일을 알송이나 곰오디오로 플레이하면 1분 37초인데 안드로이드 기본 플레이어로 돌리면 1분 20초 음악이 짤립니다.
물론 제가 만들고 있는 소스에서도 1분 20초라고만 나오고 음악이 짤립니다. 어떻게하면 안짤리게 재생시간을 받아 올 수 있을까요?
3. Mp3 파일은 태그를 읽어서 가지고 온다고 하면 그외 Midi 파일이나 그외 지원 확장자의 파일들의 재생시간을 playList에 표시하고자 할때 play() 해 주지 않으면 getDuration()으로 가져 올 수 없나요?
제대로 못받아오는거 같아서 질문 드립니다.
1. getDuration() 값은 play() 하고 난 다음에 불러와야 읽어오나요? 왜냐면 플레이리스트에 재생시간을 넣을려고 하는데 자꾸만 이상한 값만 가져오네요? 어떻게하면 리스트에 재생시간을 제대로 표시할 수 있을까요?
2. 첨부한 음악파일을 알송이나 곰오디오로 플레이하면 1분 37초인데 안드로이드 기본 플레이어로 돌리면 1분 20초 음악이 짤립니다.
물론 제가 만들고 있는 소스에서도 1분 20초라고만 나오고 음악이 짤립니다. 어떻게하면 안짤리게 재생시간을 받아 올 수 있을까요?
3. Mp3 파일은 태그를 읽어서 가지고 온다고 하면 그외 Midi 파일이나 그외 지원 확장자의 파일들의 재생시간을 playList에 표시하고자 할때 play() 해 주지 않으면 getDuration()으로 가져 올 수 없나요?
mp3 태그 정보는 MediaSotre.Audio.Media 를 통해서 얻으실 수 있습니다.
Cursor cursor = getContentResolver().query(MediaStore.Audio.Media.EXTERNAL_CONTENT_URI,
new String [] {
MediaStore.Audio.Media._ID,
MediaStore.Audio.Media.TITLE,
MediaStore.Audio.Media.TRACK,
MediaStore.Audio.Media.DURATION,
MediaStore.Audio.Media.ALBUM_ID,
MediaStore.Audio.Media.ALBUM,
MediaStore.Audio.Media.ARTIST_ID,
MediaStore.Audio.Media.ARTIST,
MediaStore.Audio.Media.DATA
}, "is_music=1", null, null);
위 코드에서 is_music=1 부분에 적당한 where문을 추가하시면 구현 가능하실 것 같네요~