Android 三种方式播放视频
2015-09-28 18:29
786 查看
Android视频播放应用比较广,主要有三种方式播放视频:
1.使用自带播放器。
2.使用VideoView播放。
3.使用MediaPlayer播放。
/article/9076665.html
附:视频录制
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(); }
相关文章推荐
- [bug修复方案分享]Android4.0以上弹出Notification时图标显示不正常
- 关于attr的用法,自己写的一个例子。
- 正确使用Android性能分析工具——TraceView
- 百度地图LocationClient 报的一个错
- android 常用控件
- Android Service 与 IntentService
- 17.Android ScrollView嵌套ListView 技巧
- Android Proguard 如何混淆package name
- Android自定义控件之会缩放的GridView
- Android Dialog中加载listView,listView 的条目自适应屏幕
- Android换肤技术总结
- Android多版本兼容一(FrameLayout布局兼容)
- 让动画不再僵硬:Facebook Rebound Android动画库介绍
- Android LocalBroadcastManager 与 BroadcastReceiver
- android 源代码查看工具:android studio
- android的消息处理机制
- Android 广播接收
- Android摄像头启动顺序
- Android 使用开源库StickyGridHeaders来实现带sections和headers的GridView显示本地图片效果
- Android studio 导入工程 出现错误