如何在Android的播放M3U8? [英] How to play m3u8 on Android?
问题描述
我的理解,安卓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!)
给出的答案到底:
基本的Android 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屋!