我们有一个提供程序,为我们提供用于HLS流的m3u8文件(最初是为iOS应用程序使用而设计)。
Android 3.0+支持http live streaming(http://developer.android.com/guide/appendix/media-formats.html),事实上我们可以使用Android 3.0+上的标准VideoView播放这些m3u8文件。
编辑:Android似乎将此视为“实时”视频源,并禁用了寻找或计算视频持续时间的能力。(而iOS允许您在流内部自由查找)
是否有任何方法可以强制Android 3.0+在这些文件中进行查找?
以下是其他人可以测试的示例活动:
Android 3.0+支持http live streaming(http://developer.android.com/guide/appendix/media-formats.html),事实上我们可以使用Android 3.0+上的标准VideoView播放这些m3u8文件。
编辑:Android似乎将此视为“实时”视频源,并禁用了寻找或计算视频持续时间的能力。(而iOS允许您在流内部自由查找)
是否有任何方法可以强制Android 3.0+在这些文件中进行查找?
以下是其他人可以测试的示例活动:
import android.app.Activity;
import android.os.Bundle;
import android.widget.MediaController;
import android.widget.VideoView;
public class SandboxActivity extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
VideoView vw = (VideoView) findViewById(R.id.videoView);
vw.setVideoPath("http://devimages.apple.com/iphone/samples/bipbop/gear4/prog_index.m3u8");
vw.setMediaController(new MediaController(this));
vw.requestFocus();
vw.start();
}
}
还有一个示例布局:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:gravity="center" android:id="@+id/root">
<VideoView
android:id="@+id/videoView"
android:layout_width="wrap_content"
android:layout_height="match_parent" />
</RelativeLayout>
这是使用Apple提供的示例HLS链接。