使用 Android 内置的 VideoView 控件播放视频,支持本地视频和网络视频流。
1. 布局中添加 VideoView
<VideoView
android:id="@+id/myVideoView"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
</VideoView>Code language: HTML, XML (xml)
2. Activity 中加载并播放
var videoView = FindViewById<VideoView>(Resource.Id.SampleVideoView);
var uri = Android.Net.Uri.Parse("url地址");
videoView.SetVideoURI(uri);
videoView.Start();Code language: JavaScript (javascript)
3. 按钮点击播放
private void Btn_Click(object sender, EventArgs e)
{
var videoView = FindViewById<VideoView>(Resource.Id.myVideoView);
var uri = Android.Net.Uri.Parse("https://xxxxx.com/iframe/player.html?vid=do6736yq4jw&tiny=0&auto=0");
videoView.SetVideoURI(uri);
videoView.Start();
}Code language: JavaScript (javascript)
总结
VideoView是专门用来播放视频的控件,内部封装了MediaPlayer和SurfaceViewSetVideoURI(uri):设置视频源,支持本地文件路径和网络视频地址Start():开始播放;对应Pause()暂停、StopPlayback()停止- 播放网络视频同样需要在
AndroidManifest.xml中声明INTERNET权限
提示
VideoView 只能播放真实的视频文件流(如 .mp4、.3gp 等直链),不能直接播放网页 iframe 嵌入地址。
上面代码里的 https://xxxxxx.com/iframe/player.html?... 是腾讯视频的网页播放器页面,不是视频文件直链,VideoView 无法解析播放。
正确做法:
- 使用
.mp4等视频文件的真实直链地址 - 如果要播放腾讯/优酷等平台视频,需要用
WebView加载网页,或接入对应平台的 SDK
添加媒体控制器(播放/暂停/进度条)
var mediaController = new MediaController(this);
mediaController.SetAnchorView(videoView);
videoView.SetMediaController(mediaController);Code language: JavaScript (javascript)
Previous: 播放网络音频
Next: 临时存储 SharedPreferences