您的位置:首页 > 移动开发 > Android开发

Android 三种方式播放视频

2015-09-28 18:29 786 查看
Android视频播放应用比较广,主要有三种方式播放视频:

1.使用自带播放器。

Intent intent=new Intent(Intent.ACTION_VIEW);
Uri uri = Uri.parse("file:///mnt/sdcard/big_buck_bunny.mp4");
intent.setDataAndType(uri, "video/mp4");
startActivity(intent);

2.使用VideoView播放。

VideoView video = (VideoView)findViewById(R.id.videoView1);
//VideoView与MediaController进行关联
MediaController media= new MediaController(this);
Uri uri = Uri.parse("file:///mnt/sdcard/big_buck_bunny.mp4");
video.setVideoURI(uri);
video.setMediaController(media);


3.使用MediaPlayer播放。

public class MainActivity extends Activity implements Callback {
private MediaPlayer mp;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
SurfaceView surface = (SurfaceView) findViewById(R.id.surfaceView1);
SurfaceHolder myHolder = surface.getHolder();//得到SurfaceView的控制接口
myHolder.addCallback(this);//得到当前的回调接口
}
@Override
public void surfaceCreated(SurfaceHolder holder) {
mp = new MediaPlayer();//surface创建后再初始化MediaPlayer
mp.setDisplay(holder);//视频显示在SurfaceView上
mp.setAudioStreamType(AudioManager.STREAM_MUSIC);//媒体声音类型
try {
mp.setDataSource("/mnt/sdcard/big_buck_bunny.mp4");
mp.prepare();
mp.start();
} catch (IllegalArgumentException e) {
} catch (SecurityException e) {
} catch (IllegalStateException e) {
} catch (IOException e) {
}

}
@Override
public void surfaceChanged(SurfaceHolder holder,int format,int width,int height){
}
@Override
public void surfaceDestroyed(SurfaceHolder holder) {
mp.release();
}
}

/article/9076665.html

附:视频录制

try {
File dir = new File(Environment.getExternalStorageDirectory().getAbsolutePath()+"/Video");
if(!dir.exists()){
dir.mkdir();
}
File myRecAudioFile = File.createTempFile("video", ".3gp",dir);//创建临时文件
recorder = new MediaRecorder();//获取媒体对象
mSurfaceHolder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS);
recorder.setPreviewDisplay(mSurfaceHolder.getSurface());//预览
Camera c = Camera.open();
c.setDisplayOrientation(90);
c.unlock();
recorder.setCamera(c);
recorder.setVideoSource(MediaRecorder.VideoSource.CAMERA);//视频源
recorder.setAudioSource(MediaRecorder.AudioSource.MIC); //录音源为麦克风
recorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP);//输出格式为3gp
recorder.setVideoSize(480, 800);//视频尺寸
recorder.setVideoFrameRate(15);//视频帧频率
recorder.setVideoEncodingBitRate(1024*1024);//清晰度比特率
recorder.setVideoEncoder(MediaRecorder.VideoEncoder.H263);//视频编码
recorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB);//音频编码
recorder.setMaxDuration(10000);//最大期限
recorder.setOutputFile(myRecAudioFile.getAbsolutePath());//保存路径
recorder.prepare();
recorder.start();
} catch (IOException e) {
e.printStackTrace();
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: