播放视频(VideoView)

使用 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)

总结

  1. VideoView 是专门用来播放视频的控件,内部封装了 MediaPlayerSurfaceView
  2. SetVideoURI(uri):设置视频源,支持本地文件路径和网络视频地址
  3. Start():开始播放;对应 Pause() 暂停、StopPlayback() 停止
  4. 播放网络视频同样需要在 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)

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注