多媒体_视频播放器
来源:互联网 发布:软件开发 杭州 编辑:程序博客网 时间:2024/04/29 12:58
//mainActivity
package com.demo.vedio;import java.io.IOException;import android.app.Activity;import android.media.MediaPlayer;import android.os.Bundle;import android.view.Menu;import android.view.MenuItem;import android.view.SurfaceHolder;import android.view.SurfaceHolder.Callback;import android.view.SurfaceView;public class MainActivity extends Activity {private MediaPlayer player;private SurfaceView sv;SurfaceHolder holder;int progress = 0; //定义播放进度protected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);sv = (SurfaceView) findViewById(R.id.sv);//获取surfaceview的控制器holder = (SurfaceHolder) sv.getHolder();holder.addCallback(new Callback() {@Override//在surfaceview销毁时调用public void surfaceDestroyed(SurfaceHolder holder) {if(player != null){//停止之前先保存播放进度progress = player.getCurrentPosition();player.stop(); //停止player.release(); //释放资源player = null;}}//在surfaceview创建时调用@Overridepublic void surfaceCreated(SurfaceHolder holder) {if(player == null){ //判断play是否为空,空就创建player = new MediaPlayer();//player.reset();try {player.setDataSource("mnt/sdcard/2.3gp");//指定视频播放在哪个surfaceviewplayer.setDisplay(holder); //返回的是一个Surfaceholderplayer.prepare();//跳转到上一次停止的地方继续播放player.seekTo(progress);player.start();} catch (Exception e) {e.printStackTrace();} }}@Override//在surfaceview改变时调用public void surfaceChanged(SurfaceHolder holder, int format, int width, int height) {}});}}
//布局文件
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context="${relativePackage}.${activityClass}" > <SurfaceView android:id="@+id/sv" android:layout_width="wrap_content" android:layout_height="wrap_content" /></RelativeLayout>
//MainActivit文件
package com.demo.videoview;import android.app.Activity;import android.os.Bundle;import android.view.Menu;import android.view.MenuItem;import android.widget.VideoView;public class MainActivity extends Activity {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);VideoView vv = (VideoView) findViewById(R.id.vv);vv.setVideoPath("sdcard/2.3gp");vv.start();}}
//布局文件
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context="${relativePackage}.${activityClass}" > <VideoView android:id="@+id/vv" android:layout_width="match_parent" android:layout_height="match_parent" /></RelativeLayout>
0 0
- 多媒体_视频播放器
- 多媒体(视频播放器)
- 多媒体视频播放器
- 多媒体(视频播放器)
- 多媒体_音乐播放器
- Android-多媒体之VideoView视频播放器
- Android多媒体(视频播放器-拍照-录像)
- 多媒体(音乐播放器+视频)
- 多媒体(视频播放器-拍照-录像)
- Android------多媒体(视频播放器-拍照-录像)
- Android MediaPlayer 多媒体(视频播放器)
- 多媒体开发---视频播放器开发(android)
- android 多媒体 视频播放
- Android多媒体播放器之视频播放器
- Android 多媒体开发 视频播放
- Android多媒体--音视频播放
- Android 多媒体编程 视频播放
- 手机多媒体--音/视频播放
- Android 星星评价
- meta标签定义
- hadoop搭建配置信息
- [leetcode] 【链表】143. Reorder List
- C#/串口助手开发
- 多媒体_视频播放器
- Search in Rotated Sorted Array(hard)
- 文本固定长度如:电话号码处理。
- 如何设定Toast显示时间。
- FICO总账余额相关的事务码
- Hive 的性能调优总结
- PHP和Android之间的通信
- HTTPS, SPDY和 HTTP/2性能的简单对比
- Quartz组件学习记录