2017-04-17 18 views
4

나는 .m3u8 URL (트랙 용) 및 .vtt URL (트랙 세부 정보 용)이 있습니다. 나는 모든 트랙의 세부 사항이 .vtt 파일과 함께 오는 안드로이드에서 라디오를 개발 중이다.Android 용 오디오 트랙 용 MediaPlayer에서 webvtt 파일을 사용하는 방법

그럼 내 질문은 어떻게하면 MediaPlayer에서 track url과 .vtt url을 동기화 할 수 있는지입니다.

라디오가 잘 작동하지만 트랙의 세부 정보를 얻을 수 없습니다.

Q. .vtt 파일을 사용해야하는 이유는 무엇입니까?

Ans. 라디오에는 무한한 노래가 포함되어 있고 모든 노래에는 자체 세부 정보가 있기 때문입니다. 그 이유는 트랙과 그 세부 사항을 동기화해야합니다.

내 .vtt 파일 구조입니다.

WEBVTT 

1 
00:00:00.000 --> 00:03:22.176 
NOW PLAYING: <b>Don&#39;t Go</b> - Jon Tarifa 
NOTE https://play.unplug.de/images/artwork.php?id=113043444&w=400 

2 
00:03:22.176 --> 00:06:28.725 
NOW PLAYING: <b>Treat You Better</b> - Shawn Mendes 
NOTE https://play.unplug.de/images/artwork.php?id=112983776&w=400 

3 
00:06:28.725 --> 00:09:46.954 
NOW PLAYING: <b>Used To Have It All</b> - Fais &amp; Afrojack 
NOTE https://play.unplug.de/images/artwork.php?id=113044015&w=400 

4 
00:09:46.954 --> 00:13:45.330 
NOW PLAYING: <b>Hurts</b> - Emeli Sandé 
NOTE https://play.unplug.de/images/artwork.php?id=113029897&w=400 
... 
... 

누구든지 알고 있다면 대답하십시오.

미리 감사드립니다.

답변

0

MediaPlayer은 잘 지원하지 않습니다. 고려하십시오 ExoPlayer

+0

Exoplayer에서 지원한다고 말했지만 오디오 트랙 (.m3u8 형식)이 포함 된 자막의 모든 exmaple을 얻지 못했습니다. 네가 가지고 있다면 나를 보내라. –

0

나는 ExoPlayer를 구현하는 것이 좋음에 동의합니다. 여기 지원되는 형식을 볼 수

https://google.github.io/ExoPlayer/supported-formats.html

당신은 개발자 가이드를 따를 수 있습니다. 조금 혼란 스럽지만 실제로 이동하기 쉽습니다. 노래 종료 시간 - .vtt 파일이 일관성이 경우

https://github.com/google/ExoPlayer/blob/release-v2/demo/src/main/java/com/google/android/exoplayer2/demo/PlayerActivity.java

+0

외부 WebVTT URL로 재생되는 트랙을 보지 못했습니다. 이 샘플에는 자막이 있지만 트랙 URL (.m3u8) 내부에없는 HLS 지원 비디오가 있습니다. URL에서 WebVTT를 동기화하여 음악을 재생하는 예제를 제공해 주실 수 있습니까? –

2

, 나는 당신이 단순히 어떤 트랙에 대한 VTT 파일을 구문 분석 시작할 필요가 없다고 생각 : 데모 응용 프로그램의 소스 코드를 볼 잊지 마세요 , 아티스트 및 미리보기 이미지 URL 그런 다음 트랙 세부 정보와 추적을 쉽게 구현할 수 있습니다.

+0

예 모든 솔루션에서 오류가 발생하면 필자는이를 수동으로 구문 분석합니다. 성공적으로 구문 분석하지만 여전히 문제가 발생합니다. 단계별로 문제를 설명하려고합니다. 1 단계 : Handler를 만들고 MediaPlayer가 재생을 시작한 후 해당 Handler를 시작합니다. 2 단계 : Media Player에서 현재 위치를 가져 와서 구문 분석 한 클래스에 전송합니다. 그것은 현재와 현재 위치에 따라 그 트랙의 제목과 삽화를 나에게 보낸다. 그러나 2 단계에서 라디오가 두 번째 트랙을 시작한 다음 미디어 플레이어가 현재 위치로 0을 반환하면 문제가 발생합니다. 다시 파서가 동일한 제목을 제공합니다. –

+0

'MediaPlayer.getCurrentPosition()'이 재생을 반환하지만 올바르게 이해할 수 있는지 확실하지 않습니다. 위치가 아니라 트랙 번호. 따라서 트랙 번호를 추적하기 위해 자체 솔루션을 구현해야합니다.간단한 해결책은 트랙 목록 처리기로 사용자 지정 클래스를 만드는 것입니다.이 클래스는 사용 가능한 트랙 목록을 유지하며 미디어 플레이어는이 클래스에서 다음 트랙을 요청합니다. – koray1396