Android使用MediaRecorder可以使用自带的pause()实现音频暂停功能

谷歌原生MediaRecorder是没有实现Pause()和Resume()。MTK在MediaRecorderEx中扩展了这两个接口,使AP可以调用这两个接口,实现录像pause和resume的功能。但许多客户对这两个接口并不熟悉,不知道怎么调用,因此在此处详细说明这两个接口的用法。

方案一:
在AP修改:
1)在Java代码头部引入MediaRecorderEx:
import com.mediatek.media.MediaRecorderEx;
2)在pause按钮点击后去调用代码:
MediaRecorderEx.pause(mMediaRecorder);
3)在resume按钮点击时调用代码:
mMediaRecorder.start();
这样就做到了录像的pause和resume了。
MediaRecorderEx代码路径:
JB版本/KK版本:mediatek/Frameworks/base/media/java/com/mediatek/media/MediaRecorderEx.java
L版本:vendor/mediatek/proprietary/frameworks/base/media/java/com/mediatek/media/MediaRecorderEx.java

方案二:
在FrameWork修改:
在MediaRecorder.java中添加Pause和Resume接口,AP分别调用即可:
public void pause() throws IllegalStateException
{
    setParametersExtra("media-param-pause=1");
}
public void resume() throws IllegalStateException
{
    start();
}
MediaRecorder代码路径:
JB/KK/L版本:
frameworks/base/media/java/android/media/MediaRecorder.java

 

但是之前谷歌在MediaRecorder中没有实现Pause(),不支持暂停续录,就只能在MediaRecorder录音暂停时,保存这段所录下的音频A,继续录音后,再次暂停,保留录音音频B;以此类推直到最终的录音结束时,依次读取之前保存的A、B……的录音文件,并将其合并在一起来实现暂停续录。但是现在使用API24以上的版本就可以使用官方的pause(),但是要跟resume()方法一起使用才生效。

官方的API链接:https://developer.android.com/reference/android/media/MediaRecorder.html

 

 

整合参考链接:https://blog.csdn.net/hard__ball/article/details/77449057

http://bbs.16rd.com/thread-59319-1-1.html

 

你可能感兴趣的:(Android,MTK)