`
zhouYunan2010
  • 浏览: 206409 次
  • 性别: Icon_minigender_1
  • 来自: 湖南
社区版块
存档分类

总结android音频视频操作

阅读更多

播放音乐和视频用的是类:MediaPlayer
刻录声音和视频用的是类:MediaRecorder

拍照:Camera

 

没什么难度,都是调用android的API

1.刻录视频,关键代码如下:

               MediaRecorder mediaRecorder = new MediaRecorder();
		mediaRecorder.reset();   //首先重置一下
		mediaRecorder.setVideoSource(MediaRecorder.VideoSource.CAMERA); //从照相机种采集视频
		mediaRecorder.setVideoSource(MediaRecorder.AudioSource.MIC);  //从麦克风中采集声音
		mediaRecorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP); //输出格式3GP
		mediaRecorder.setVideoSize(350, 240);  //视频文件大小
		mediaRecorder.setVideoFrameRate(3);  //录制帧数,每秒3帧
		mediaRecorder.setVideoEncoder(MediaRecorder.VideoEncoder.H263);//设置视频编码方式
		mediaRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB); //设置声音编码方式
		/*设置保存路径为sd卡根目录*/
		File videoFile = new File(Environment.getExternalStorageDirectory(),System.currentTimeMillis()+".3gp");
		mediaRecorder.setOutputFile(videoFile.getAbsolutePath());
		mediaRecorder.setPreviewDisplay(surfaceView.getHolder().getSurface()); //定义一个SurfaceView来显示画面
		mediaRecorder.prepare();    //此处要捕捉异常,底层调用硬件实现准备工作
		mediaRecorder.start();
		
		//停止
		mediaRecorder.stop();
		mediaRecorder.release();
		mediaRecorder=null;

 

 

2.刻录声音,关键代码如下:

        //与录制视频很相似
        mRecorder = new MediaRecorder();
        mRecorder.setAudioSource(MediaRecorder.AudioSource.MIC);    //声音来源麦克风
        mRecorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP);  //输出格式
        mRecorder.setOutputFile(mFileName);     //可以自己给定保存文件
        mRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB);  //编码方式
        mRecorder.prepare();
        mRecorder.start();
 

3.播放声音,关键代码如下:

           MediaPlayer mPlayer = new MediaPlayer();
            mPlayer.reset
            mPlayer.setDataSource(mFileName);      //设置播放的声音文件
            mPlayer.prepare();
            mPlayer.start();

            //............
            //基本方法
            mPlayer.pause()   //暂停播放
            mPlayer.stop()     //停止播放
            mPlayer.seekTo(int)   //直接跳到某点进行播放

 

4.播放视频,关键代码如下:

               MeidaPlayer media = new MeidaPlayer();
               media.setAudioStreamType(AudioManager.STREAM_MUSIC);
		media.setDisplay(sh);      //定义一个SurfaceView播放它
		media.setDataSource(file.getAbsolutePath());
		media.prepare();
		media.start();

 

5.拍照,关键代码如下

               Camera camera = Camera.open();
		Parameters parameters = camera.getParameters();
		parameters.setPreviewSize(420, 300);     //设置预览照片的大小
		parameters.setPreviewFrameRate(3);  //每秒3帧
		parameters.setPictureFormat(PixelFormat.JPEG);   //设置照片输出格式
		parameters.set("jpeg-quaility", 85);   //设置照片质量
		parameters.setPictureSize(420, 300);   //设置照片大小
		camera.setParameters(parameters);
		camera.setPreviewDisplay(SurfaceView)  //定义一个 SurfaceView用于显示预览
		camera.startPreview();
		
		//..........
		//按下拍照键后
		//camera.autoFocus(null);   自动对焦
		camera.takePicture(null, null, new PictureClassback());   //拍照
             
             //..............
             //需要实现PictureCallback接口
            private class PictureClassback implements PictureCallback{

		public void onPictureTaken(byte[] abyte0, Camera camera) {
			Bitmap bitmap = BitmapFactory.decodeByteArray(abyte0, 0, abyte0.length); //根据照片2进制流生成位图
			File file = new File(Environment.getExternalStorageDirectory(),System.currentTimeMillis()+".jpg");
			FileOutputStream stream = new FileOutputStream(file);
			bitmap.compress(CompressFormat.JPEG, 100, stream);   //此方法设置照片质量和输出格式,并且保存图片
			stream.close();
		}
    	
    }

 .............

分享到:
评论
发表评论

文章已被作者锁定,不允许评论。

相关推荐

    超有用的安卓学习材料6

    53、总结android音频视频操作 110 54、android 调用系统相机 112 55、android 47个常用代码片段 112 56、Android之SurfaceView详解 127 57、Toast的标准格式 141 58、判断当前网络连接是否正常 141 59、MD5加密 142 ...

    Android开发案例驱动教程 配套代码

    12.3.1 Android音频/视频录制状态 303 12.3.2 音频录制案例介绍 303 12.3.3 音频录制案例实现 305 12.4 Android视频播放 309 12.4.1 视频播放案例 309 12.4.2 采用MediaPlayer类播放视频 310 12.4.3 使用...

    基于Android ContentProvider的总结详解

    1.适用场景1) ContentProvider为存储和读取数据提供了统一的接口2) 使用ContentProvider,应用程序可以实现数据共享3) android内置的许多数据都是使用ContentProvider形式,供开发者调用的(如视频,音频,图片,...

    Android、Java程序员面试资源总结,涉及Java、Android、网络、操作系统、算法等.zip

    包含前端、后端、移动开发、操作系统、人工智能、物联网、信息化管理、数据库、硬件开发、大数据、课程资源、音视频、网站开发等各种技术项目的源码。 包括STM32、ESP8266、PHP、QT、Linux、iOS、C++、Java、python...

    168套Andorid项目源码.zip

    【eoeAndroid特刊】第18期:Android音视频的编解码,zip ActivityGroup + GridView + ViewFlipper 实现选项卡,zip Adroid Ul 界面绘制原理分析.rar AnderWeb-android packages apps Launcher-4458ee4.zip andorid 源码...

    Android底层开发技术实战详解--内核、移植和驱动.(电子工业.王振丽).part1

    3.3.2 为Android构建 Linux的操作系统 63 3.4 内核空间和用户空间接口是一个媒介 64 3.4.1 内核空间和用户空间的相互作用 64 3.4.2 系统和硬件之间的交互 64 3.4.3 使用relay实现内核到用户空间的...

    Android多点触摸遥控系统的研究与实现

     采用先进的ARM Cortex A9处理器Hi3716H支持各种格式的高清晰度视频解码,提供音频/视频输入接口,3D加速引擎和标准的OpenGL ES 接口,Android2.0以上版本都是支持多点触摸的。因此本文提出了基于Android平台的多点...

    Android底层开发技术实战详解--内核、移植和驱动.(电子工业.王振丽).part3

    3.3.2 为Android构建 Linux的操作系统 63 3.4 内核空间和用户空间接口是一个媒介 64 3.4.1 内核空间和用户空间的相互作用 64 3.4.2 系统和硬件之间的交互 64 3.4.3 使用relay实现内核到用户空间的...

    Android (系统+自定义)短视频录制(含暂停继续录制功能) 总结.zip

    包含前端、后端、移动开发、操作系统、人工智能、物联网、信息化管理、数据库、硬件开发、大数据、课程资源、音视频、网站开发等各种技术项目的源码。 包括STM32、ESP8266、PHP、QT、Linux、iOS、C++、Java、python...

    Android模拟器参数大全

    用户可以使用键盘输入,单击模拟器按键输入,甚至还可以使用鼠标单击、拖动屏幕进行操作。 1.模拟器和真机的不同之处 * 不支持呼叫和接听实际来电,但可以通过控制台模拟电话呼叫(呼入和呼出)。 * 不支持USB连接...

    android 面试题 安卓巴士总结.zip

    【项目资源】:包含前端、后端、移动开发、操作系统、人工智能、物联网、信息化管理、数据库、硬件开发、大数据、课程资源、音视频、网站开发等各种技术项目的源码。包括STM32、ESP8266、PHP、QT、Linux、iOS、C++、...

    基于Android 系统的动画总结.zip

    包含前端、后端、移动开发、操作系统、人工智能、物联网、信息化管理、数据库、硬件开发、大数据、课程资源、音视频、网站开发等各种技术项目的源码。 包括STM32、ESP8266、PHP、QT、Linux、iOS、C++、Java、python...

    基于Android的安卓巴士总结了近百个Android优秀开源项.zip

    【项目资源】:包含前端、后端、移动开发、操作系统、人工智能、物联网、信息化管理、数据库、硬件开发、大数据、课程资源、音视频、网站开发等各种技术项目的源码。包括STM32、ESP8266、PHP、QT、Linux、iOS、C++、...

    Android 操作权限大全(已归纳分类)

    【注:学习Android做的笔记(总结),大神勿喷。有不足之处还望不吝赐教。】 Android 操作权限大全,已大部分归纳分类(还未完全),有错误的,漏掉的,还望指出,谢谢。 (想有查阅不便的,上传有文档...17.音频&视频

    工程硕士学位论文 基于Android+HTML5的移动Web项目高效开发探究

    Android 一种基于Linux的自由及开放源代码的操作系统,主要使用于移动设备,如智能手机和平板电脑,由Google公司和开放手机联盟领导开发 IOS 由苹果公司开发的移动操作系统 Webkit 一个开源的浏览器引擎,在手机上的...

    基于Android的 面试题 安卓巴士总结.zip

    【项目资源】:包含前端、后端、移动开发、操作系统、人工智能、物联网、信息化管理、数据库、硬件开发、大数据、课程资源、音视频、网站开发等各种技术项目的源码。包括STM32、ESP8266、PHP、QT、Linux、iOS、C++、...

Global site tag (gtag.js) - Google Analytics