Android-android 在线视频播放

发布于 2016-10-11 16:46:59 字数 23 浏览 1308 评论 2

请问在线视频播放的原理和实现方式

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

甜柠檬 2016-12-19 13:17:01

在线视频播放,其实就是把网络视频作为一个流读取到本地,然后在本地播放。为了使得在线视频播放的流畅性,一般会采用许多措施,比如多线程同时下载视频流等。而且,为了能够实现边下载边播放的功能,会把原始的视频文件截成一段一段的小数据流,只要某一段小数据流下载完毕,就可以播放了。
上述大概讲了下原理。至于android平台的实现方式,可以直接使用控件VideoView。VideoView继承SurfaceView和实现MediaPlayerControl。继承SurfaceView用于使用单独线程绘制UI,这样可以实时改变和绘制界面,能够适应视频播放的需求。实现MediaPlayerControl用于预定义一些辅助接口,包括各种对视频播放的控制,比如开始、结束、暂停、播放位置、拖动播放等。

使用VideoView播放的基本控制代码大致如下:

mVideoView = (VideoView)findViewById(R.id.main_videoView);

//设置videoView播放的视频的uri
mVideoView.setVideoURI(Uri.parse("http://static.youku.com/v1.0.0288/v/swf/loader.swf"));

//设置videoView的视频播放控制器
mVideoView.setMediaController(new MediaController(MainActivity.this) {
@Override
public void hide() {
// TODO Auto-generated method stub
//super.hide();
//设置控制条不自动隐藏
this.show();
}
});

//设置videoView准备完毕监听器,用于触发播放操作
mVideoView.setOnPreparedListener(new MediaPlayer.OnPreparedListener() {

@Override
public void onPrepared(MediaPlayer mp) {
// TODO Auto-generated method stub
//开始播放
mVideoView.start();
}
});

//其他相关的控制操作
...

灵芸 2016-12-06 19:13:32

其实现在的在线播放视频都不是真正的在线播放,其实是相当于把原来的视频分成很多的小段,按顺序一段一段得下载下来,然后在本地播放,在表面看起来像是在线播放,其实是边下边播放,其实也不算是边下边播放,只是把视频分段下载,分段播放。
你可以看看优酷视频的缓存,就是把视频分成很多的小段的,每一段都是可以直接播放的,不过也有一些软件会把这些小段的视频转成其它格式,只有用他自己的播放器才能播放,但是原理是一样的。

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文