如何在Android的播放M3U8? [英] How to play m3u8 on Android?

查看:1995
本文介绍了如何在Android的播放M3U8?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我的理解,安卓3.0及以上版本能够进行播放广播流M3U8 - http://developer.android.com/guide/appendix/media-formats.html

我把这个链接 - HTTP://content.mobile -tv.sky.com/content/ssna/live/ssnraudio.m3u8 到的MediaPlayer,但在LogCat中我得到:

  9月6日至1日:04:44.287:信息/ LiveSession(33):为onConnecthttp://content.mobile-tv.sky.com/content/ssna/live/ ssnraudio.m3u8
九月六日至1日:04:44.287:信息/ NuHTTPDataSource(33):连接到content.mobile-tv.sky.com:80/content/ssna/live/ssnraudio.m3u8~~V @ 0
九月六日至1日:04:44.747:信息/ NuHTTPDataSource(33):连接到content.mobile-tv.sky.com:80/content/ssna/live/ssnraudio.m3u8~~V @ 0
九月六日至1日:04:45.019:信息/ NuHTTPDataSource(33):连接到content.mobile-tv.sky.com:80/content/ssna/live/ssnraudio/ssnr_052311_071632_78731.aac~~V @ 0
** 9月6日至一号:04:45.817:ERROR / LiveSession(33):这看起来并不像一个传输流... **
九月六日至1日:04:45.967:信息/ HTTPLiveSource(33):输入数据EOS到达。
 

这是我的源$ C ​​$ C:

  MP =新的MediaPlayer();
    start.setOnClickListener(新OnClickListener(){

        @覆盖
        公共无效的onClick(查看为arg0){
            // TODO自动生成方法存根
            尝试 {

                mp.setDataSource(http://content.mobile-tv.sky.com/content/ssna/live/ssnraudio.m3u8);
                MP prepare()。
                mp.start();

            }赶上(例外五){
                // TODO自动生成的catch块
                e.printStackTrace();
            }
        }
    });

    stop.setOnClickListener(新OnClickListener(){

        @覆盖
        公共无效的onClick(视图v){
            // TODO自动生成方法存根
            尝试 {

                mp.stop();
                mp.reset();

            }赶上(例外五){
                // TODO自动生成的catch块
                e.printStackTrace();
            }
        }
    });
}
 

解决方案

在此之后Link路径: HTTP://$c$c.google.com/p /安卓/问题/详细信息?ID = 14646

- >

HTTP://$c$c.google。 COM / P /安卓/问题/详细信息?ID = 16884

- >

HTTP://$c$c.google。 COM / P /安卓/问题/详细信息?ID = 17118

(ARGGGGH!)

给出的答案到底:

基本的Andr​​oid V2.3和放大器; V3.0,使用非标准httplive://方案, 3.1使用http://但你如何调用相关的方法,框架传媒的一些code的解决方法

As i understood, Android 3.0 and above are able for play radio streaming m3u8 - http://developer.android.com/guide/appendix/media-formats.html

I put this link - http://content.mobile-tv.sky.com/content/ssna/live/ssnraudio.m3u8 into MediaPlayer but in LogCat i get:

06-01 09:04:44.287: INFO/LiveSession(33): onConnect 'http://content.mobile-tv.sky.com/content/ssna/live/ssnraudio.m3u8'
06-01 09:04:44.287: INFO/NuHTTPDataSource(33): connect to content.mobile-tv.sky.com:80/content/ssna/live/ssnraudio.m3u8 @0
06-01 09:04:44.747: INFO/NuHTTPDataSource(33): connect to content.mobile-tv.sky.com:80/content/ssna/live/ssnraudio.m3u8 @0
06-01 09:04:45.019: INFO/NuHTTPDataSource(33): connect to content.mobile-tv.sky.com:80/content/ssna/live/ssnraudio/ssnr_052311_071632_78731.aac @0
**06-01 09:04:45.817: ERROR/LiveSession(33): This doesn't look like a transport stream...**
06-01 09:04:45.967: INFO/HTTPLiveSource(33): input data EOS reached.

This is my source code:

    mp = new MediaPlayer();        
    start.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View arg0) {
            // TODO Auto-generated method stub              
            try {

                mp.setDataSource("http://content.mobile-tv.sky.com/content/ssna/live/ssnraudio.m3u8");
                mp.prepare();
                mp.start();

            } catch (Exception e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            } 
        }
    });

    stop.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {
            // TODO Auto-generated method stub
            try {

                mp.stop(); 
                mp.reset();

            } catch (Exception e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            } 
        }
    });
}

解决方案

Following this link trail: http://code.google.com/p/android/issues/detail?id=14646

->

http://code.google.com/p/android/issues/detail?id=16884

->

http://code.google.com/p/android/issues/detail?id=17118

(ARGGGGH!)

Gives the answer in the end:

basically in Android v2.3 & v3.0, use the non-standard httplive:// scheme, in 3.1 use http:// but with some code workaround in how you call the relevant methods in the media framework.

这篇关于如何在Android的播放M3U8?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆