播放视频
来源:互联网 发布:我知女人心 电影粤语 编辑:程序博客网 时间:2024/05/02 01:20
播放视频文件其实并不比播放音频文件复杂,主要是使用VideoView类来实现的。这个类将视频的显示和控制集于一身,使得我们仅仅借助它就可以完成一个简易的视频播放器。VideoView的用法和MediaPlayer也比较类似,主要有以下常用方法:
布局文件
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" > <VideoView android:id="@+id/video_view" android:layout_width="match_parent" android:layout_height="300dp" /> <LinearLayout android:layout_width="match_parent" android:layout_height="match_parent" > <Button android:id="@+id/play" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1" android:text="Play" /> <Button android:id="@+id/pause" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1" android:text="Pause" /> <Button android:id="@+id/replay" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1" android:text="Replay" /> </LinearLayout></LinearLayout>
程序代码
public class MainActivity extends Activity implements OnClickListener { private VideoView videoView; private Button play; private Button pause; private Button replay; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); play = (Button) findViewById(R.id.play); pause = (Button) findViewById(R.id.pause); replay = (Button) findViewById(R.id.replay); videoView = (VideoView) findViewById(R.id.video_view); play.setOnClickListener(this); pause.setOnClickListener(this); replay.setOnClickListener(this); initVideoPath(); } private void initVideoPath() {// File file = new File(Environment.getExternalStorageDirectory(),// "movie.3gp"); File ff = new File(Environment.getExternalStorageDirectory() .getAbsoluteFile() + File.separator + "movie"); if (!ff.exists()) { ff.mkdirs(); } File file = new File(ff, "hua.mp4"); videoView.setVideoPath(file.getPath()); // 指定视频文件的路径 } @Override public void onClick(View v) { switch (v.getId()) { case R.id.play: if (!videoView.isPlaying()) { videoView.start(); // 开始播放 } break; case R.id.pause: if (videoView.isPlaying()) { videoView.pause(); // 暂时播放 } break; case R.id.replay: if (videoView.isPlaying()) { videoView.resume(); // 重新播放 } break; } } @Override protected void onDestroy() { super.onDestroy(); if (videoView != null) { videoView.suspend(); } }}
因为需要读取sdcard的内容,需要权限:
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
另外需要注意,VideoView并不是一个万能的视频播放工具类,它在视频格式的支持以及播放效率方面都存在着较大的不足。所以,如果想要仅仅使用VideoView就编写出一个功能非常强大的视频播放器是不太现实的。但是如果只是用于播放一些游戏的片头动画,或者某个应用的视频宣传,使用VideoView还是绰绰有余的。
0 0
- 视频播放
- 视频播放
- 播放视频
- 视频播放
- 播放视频
- 播放视频
- 播放视频
- 播放视频
- 播放视频
- 视频播放
- 视频播放
- 播放视频
- 视频播放
- 视频播放
- 播放视频
- 视频播放
- 视频播放
- 播放视频
- 同一个dom元素下 单击事件覆盖双击事件的解决方法
- 第三周项目3-求集合并集
- Android使用include无法调整位置的解决方法
- 第三周实践项目~求集合并集
- 定义单链表存储结构,用头插法和尾插法建立单链表,并显示建立好以后的结果。
- 播放视频
- Myeclipse10下搭建SSH框架(图解)Struts2.1+Spring3.0+Hibernate3.3
- 随想
- nginx+rtmp实现视频直播
- setsockopt()用法(参数详细说明)
- app版本信息
- 第3周 项目2-建设“顺序表”算法库
- Android Studio快速提取方法
- 性能测试监控关键指标说明