我创建了以下播放列表:
#EXTM3U
#EXTINF:3,File - 1
http://pilatus.d1.comp.nus.edu.sg/~a0095695/video_repo/1.mp4
#EXTINF:3,File - 2
http://pilatus.d1.comp.nus.edu.sg/~a0095695/video_repo/2.mp4
#EXTINF:-1,File - 3
http://pilatus.d1.comp.nus.edu.sg/~a0095695/video_repo/3.mp4
#EXT-X-ENDLIST
此外,我正在使用此代码在我的Android设备上播放:
MediaController mc = new MediaController(this);
VideoView videoview = (VideoView)findViewById(R.id.myvideoview);
mc.setMediaPlayer(videoview);
videoview.setMediaController(mc);
videoview.setVideoURI(Uri.parse("http://pilatus.d1.comp.nus.edu.sg/~a0095695/video_repo/playlist.m3u8"));
videoview.requestFocus();
videoview.start();
我想要Dash流媒体,因此会在其上创建另一组m3u8文件,以适应带宽
问题是我收到的错误如“无法播放文件”
我做错了什么?...
由于
答案 0 :(得分:4)
这是一个HLS流媒体,Android 4.0没有这种格式的问题。 toyr代码错误,尝试使用:
VideoView videoview = (VideoView)findViewById(R.id.myvideoview);
videoview.setMediaController(new MediaController(this));
videoview.setVideoURI(Uri.parse("http://pilatus.d1.comp.nus.edu.sg/~a0095695/video_repo/playlist.m3u8"));
videoview.requestFocus();
videoview.setOnPreparedListener(new OnPreparedListener() {
public void onPrepared(MediaPlayer mp) {
mp.start();
}
});
答案 1 :(得分:1)
Android对M3U8播放列表的支持有限。只有较新的设备支持播放列表。有些人提到他们在设备2.3.x上运气不错。据我所知,这个功能在Android 3.0中可用。
如果您有受支持的设备进行测试但仍会遇到问题,请尝试使用 httplive 协议
然而,应该播放mp4文件。
答案 2 :(得分:1)
这是一个如何在Android中播放.M3U8 Streaming的示例,但与其他程序员说的并不是所有Android设备都完全支持
<强> activity_main.xml中强>
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="vertical" >
<VideoView
android:id="@+id/myVideoView"
android:layout_width="fill_parent"
android:layout_height="wrap_content" />
</LinearLayout>
<强> Main.java 强>
package com.grexample.ooyalalive;
import java.net.URL;
import android.app.Activity;
import android.net.Uri;
import android.os.Bundle;
import android.widget.MediaController;
import android.widget.VideoView;
public class Main extends Activity {
private String urlStream;
private VideoView myVideoView;
private URL url;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main_vv);//***************
myVideoView = (VideoView)this.findViewById(R.id.myVideoView);
MediaController mc = new MediaController(this);
myVideoView.setMediaController(mc);
urlStream = "http://jorgesys.net/i/irina_delivery@117489/master.m3u8";
runOnUiThread(new Runnable() {
@Override
public void run() {
myVideoView.setVideoURI(Uri.parse(urlStream));
}
});
}
}
我见过很多人在播放.M3U8时遇到问题,这取决于用于流媒体的编解码器以及与设备的兼容性,例如我的.m3u8文件只支持屏幕为1200 x800及更高。