• 爱情文章
  • 亲情文章
  • 友情文章
  • 生活随笔
  • 校园文章
  • 经典文章
  • 人生哲理
  • 励志文章
  • 搞笑文章
  • 心情日记
  • 英语文章
  • 范文大全
  • 作文大全
  • 新闻阅读
  • 当前位置: 山茶花美文网 > 经典文章 > 正文

    教材使用和编写的原则包括【使用MediaRecorder编写Android,录音】

    时间:2020-05-29来源:山茶花美文网 本文已影响 山茶花美文网手机站

    1、使用Mediarecorder 录音

    MediaRecorder类用来进行媒体采样,包括音频和视频。也就是用来记录音频和视频方法的类,记录的数据一般都是写入到文件里面。因此我们可以通过这个类实现录音和录视频的功能。下面介绍MediaRecorder用来录音的简单方法:

    MediaRecorder recorder = new MediaRecorder();

    recorder.setAudioSource(MediaRecorder.AudioSource.MIC);

    recorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP);

    recorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB);

    recorder.setOutputFile(PATH_NAME);

    recorder.prepare();

    recorder.start(); // 开始录音

    ...

    recorder.stop();

    recorder.reset(); // You can reuse the object by going back to setAudioSource() step

    recorder.release(); // Now the object cannot be reused

    上面是使用MediaRecorder录音的简单流程代码,基本上你使用的代码,就能实现录音的功能。

    2、MediaRecorder 相关的类

    //Edited by mythou

    ///mythou/

    //定义音频编码

    class MediaRecorder.AudioEncoder

    //定义声音资源

    class MediaRecorder.AudioSource

    //回调接口,当录音出现错误的时候调用

    interface MediaRecorder.OnErrorListener

    //回调接口,当录音出现错误的时候调用

    interface MediaRecorder.OnInfoListener

    //定义输出格式

    class MediaRecorder.OutputFormat

    //定义视频编码

    class MediaRecorder.VideoEncoder

    //定义视频source

    class MediaRecorder.VideoSource

    3、MediaRecorder常用方法

    //获取音频信号源的最高值。

    final static int getAudioSourceMax()

    //最后调用这个方法采样的时候返回最大振幅的绝对值

    int getMaxAmplitude()

    //准备recorder 开始捕获和编码数据

    void prepare()

    //发布与此MediaRecorder对象关联的资源

    void release()

    //重新启动mediarecorder到空闲状态

    void reset()

    //设置录制的音频通道数。

    void setAudioChannels(int numChannels)

    //设置audio的编码格式

    void setAudioEncoder(int audio_encoder)

    //设置录制的音频编码比特率

    void setAudioEncodingBitRate(int bitRate)

    //设置录制的音频采样率。

    void setAudioSamplingRate(int samplingRate)

    //设置用于录制的音源。

    void setAudioSource(int audio_source)

    //辅助时间的推移视频文件的路径传递。

    void setAuxiliaryOutputFile(String path)

    void setAuxiliaryOutputFile(FileDescriptor fd)

    //在文件描述符传递的辅助时间的推移视频

    //设置一个recording的摄像头

    void setCamera(Camera c)

    //设置视频帧的捕获率

    void setCaptureRate(double fps)

    //设置记录会话的最大持续时间(毫秒)

    void setMaxDuration(int max_duration_ms)

    //设置记录会话的最大大小(以字节为单位)

    void setMaxFileSize(long max_filesize_bytes)

    //注册一个回调被调用发生错误时,同时录制

    void setOnErrorListener(MediaRecorder.OnErrorListener l)

    //注册要同时记录一个信息事件发生时调用的回调。

    void setOnInfoListener(MediaRecorder.OnInfoListener listener)

    //设置输出的视频播放的方向提示

    void setOrientationHint(int degrees)

    //传递要写入的文件的文件描述符

    void setOutputFile(FileDescriptor fd)

    //设置输出文件的路径

    void setOutputFile(String path)

    //设置在录制过程中产生的输出文件的格式

    void setOutputFormat(int output_format)

    //表面设置显示记录媒体(视频)的预览

    void setPreviewDisplay(Surface sv)

    //从一个记录CamcorderProfile对象的使用设置

    void setProfile(CamcorderProfile profile)

    //设置视频编码器,用于录制

    void setVideoEncoder(int video_encoder)

    //设置录制的视频编码比特率

    void setVideoEncodingBitRate(int bitRate)

    //设置要捕获的视频帧速率

    void setVideoFrameRate(int rate)

    //设置要捕获的视频的宽度和高度

    void setVideoSize(int width, int height)

    //开始捕捉和编码数据到setOutputFile(指定的文件)

    void setVideoSource(int video_source)

    //开始录音

    void start()

    //停止recording

    void stop()

    4、播放录音

    mPlayer = new MediaPlayer();

    mPlayer.setDataSource(mSampleFile.getAbsolutePath());

    mPlayer.setOnCompletionListener(this);

    mPlayer.setOnErrorListener(this);

    mPlayer.prepare();

    mPlayer.start();

    //.......

    mPlayer.stop();

    mPlayer.release();

    mPlayer = null;

    上面是一段简单播放录音的过程,结合上面录音代码,就可以实现录音和回放。

    • 教材使用和编写的原则包括【使用MediaRecorder编写Android,录音】 相关文章:
    • 爱情文章
    • 亲情文章
    • 友情文章
    • 随笔
    • 哲理
    • 励志
    • 范文大全