Android VideoView 直播电视流 (HLS)
Posted
技术标签:
【中文标题】Android VideoView 直播电视流 (HLS)【英文标题】:Android VideoView live tv stream (HLS) 【发布时间】:2012-08-26 15:35:32 【问题描述】:我正在尝试开发用于电视流媒体 (HLS) 的应用程序。使用下面的代码,我在 2.3.3、3.0 和 4.0.1 版本的 android 设备上测试了流,但遇到了几个问题。 在 Android 2.3.3 上,流播放超过 1 分钟,然后停止。在 Android 3.0 上运行良好,在 Android 4.0.3 上显示消息“无法播放此文件”(如果我没记错的话)。 所以我的问题是: 如何在这些设备的以太上播放流,而不会出现流播放问题?或者我在哪里可以阅读有关这些问题的解决方案的更多信息(尝试搜索但没有发现任何有用的信息)?
Main_Activity 中的代码:
@Override
public void onCreate(Bundle savedInstanceState)
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
VideoView player = (VideoView)findViewById(R.id.player);
String httpLiveUrl = "http://aj.lsops.net/live/aljazeer_en_high.sdp/playlist.m3u8";
//for Android 2.3.3 I used httplive:// prefix
player.setVideoURI(Uri.parse(httpLiveUrl));
player.setMediaController(new MediaController(this));
player.requestFocus();
player.start();
@Override
public boolean onCreateOptionsMenu(Menu menu)
getMenuInflater().inflate(R.menu.activity_main, menu);
return true;
xml 中的代码:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_
android:layout_ >
<VideoView
android:id="@+id/player"
android:layout_
android:layout_
android:layout_centerHorizontal="true" />
</RelativeLayout>
对不起,如果我的英语很差。 谢谢。
【问题讨论】:
请分享您如何播放直播印地语频道? 【参考方案1】:这不会解决所有的流媒体问题。但是您应该做的一件事是在 MediaPlayer 准备就绪时致电 player.start()
。 this SO post 的选定答案会在 MediaPlayer 对象上设置一个侦听器,以便在调用 onPrepared(MediaPlayer mp)
时它将运行 start()
。
【讨论】:
【参考方案2】:将此代码插入 AndroidManifest.xml
<uses-permission android:name="android.permission.INTERNET" />
【讨论】:
以上是关于Android VideoView 直播电视流 (HLS)的主要内容,如果未能解决你的问题,请参考以下文章
洋铭 NVS-25 网络编码器推送RTMP直播流至流媒体系统进行网络直播