Потоковое вещание Android Audio m3u8 — КАК

В качестве заголовка, как я могу транслировать аудио m3u8 на Android без витамио? (на Android 2.3+). Я видел, что какое-то приложение может транслировать мою ссылку http://4metest1-view.4me.it/api/xpublisher/resources/weebopublisher/getContentDescriptor.m3u8?clientId=4metest1&contentId=b55f7d74-cd81-48ce-9390-d9ffd5c49281&channelType=STREAMHTTPIOS&v=4 как VLC или aqua Player, но я не могу настроить mMediaPlayer для его воспроизведения.


person Alessio Crestani    schedule 26.11.2013    source источник
comment
Используете ли вы потоковый сервис, такой как Icecast или Shoutcast?   -  person Brianjs    schedule 26.11.2013
comment
нет, это не криккаст, это просто HTTP-поток HLS, но медиаплеер его не воспроизводит. Тот же сервер может транслировать m3u8 с аудио и видео, и этот видеопоток не имеет проблем в Android. Это m3u8 Audio только да :( что я могу сделать?   -  person Alessio Crestani    schedule 26.11.2013
comment
В Android 2.3 и 3.0 вы должны использовать схему httplive://, в 3.1 используйте http://. На какой версии андроид тестируете?   -  person Brianjs    schedule 26.11.2013
comment
Сейчас я тестирую S3 с 4.1.2, S2 с 4.2 и Nexus с 4.3. В nexus 4 мне нужно только передать медиаплееру http-m3u8, чтобы воспроизвести музыку с помощью телефонной галереи. В s2 и s3 проигрыватель галереи говорит, что не может воспроизводить видео. Я не понимаю, почему.   -  person Alessio Crestani    schedule 26.11.2013
comment
Можете ли вы передать тип источника, чтобы убедиться, что он не пытается использовать видео? mediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);   -  person Brianjs    schedule 26.11.2013
comment
Уже сделано, до сих пор никаких изменений.   -  person Alessio Crestani    schedule 26.11.2013


Ответы (2)


Используйте VideoView для воспроизведения звука с расслабляющей музыкой :)

myVideoView = (VideoView)this.findViewById(R.id.myVideoView);
            MediaController mc = new MediaController(this);
            myVideoView.setMediaController(mc);                     
            urlStream = "http://4metest1-view.4me.it/api/xpublisher/resources/weebopublisher/getContentDescriptor.m3u8?clientId=4metest1&contentId=b55f7d74-cd81-48ce-9390-d9ffd5c49281&channelType=STREAMHTTPIOS&v=4";
            runOnUiThread(new Runnable() {
                @Override
                public void run() {
                    myVideoView.setVideoURI(Uri.parse(urlStream)); 
                }
            });
person Jorgesys    schedule 08.01.2014

Ваш m3u8 не является настоящим файлом HLS. Это просто указатель плейлиста на один MP3

http://4metest1-4me.weebo.it/ios/Dance_of_the_Yao_People_3_JIDMQ7.mp3

Вы можете использовать медиаплеер для потоковой передачи напрямую из источника или проанализировать файл файла m3u8 в своем коде, чтобы получить индивидуальный URL-адрес.

url url = new URL(" http://4metest1-view.4me.it/api/xpublisher/resources/weebopublisher/getContentDescriptor.m3u8?clientId=4metest1&contentId=b55f7d74-cd81-48ce-9390-d9ffd5c49281&channelType=STREAMHTTPIOS&v=4");

InputStream m3u8 = (InputStream) url.getContent();      
BufferedReader br = new BufferedReader(new InputStreamReader(M3U8));
for(int i = 0; i < 2; ++i)
{
    br.readLine();
}|
readLine(); //this parses the third line of the playlist
br.close();
url = new URL(baseURL.concat(target)); 
person Brianjs    schedule 26.11.2013
comment
Извините, это не то, что я ищу. Ссылка является лишь примером конфигурации URL-адреса, потому что она мне нужна для веб-радио (БЕЗ SHOUTCAST), поэтому я не могу найти каждый фрагмент mp3. - person Alessio Crestani; 26.11.2013
comment
Итак, вы пытаетесь создать Интернет-радио? Вы не используете какой-либо широковещательный агент? Просто прямые ссылки на плейлист? - person Brianjs; 26.11.2013
comment
Я пытаюсь воспроизвести на своем устройстве Android аудиопоток по запросу, доставляемый по протоколу HLS. Проблема не в m3u8, который я выложил: на самом деле я могу играть в него с устройствами IOS, VLC и другим HLS-плеером, подобным этому osmfhls.kutu.ru. Я заметил, что могу воспроизводить видеопоток HLS по запросу, но это не работает, если потоки только аудио. - person Alessio Crestani; 26.11.2013