spi*_*tus 3 java api android file mediarecorder
使用 Android 录制视频时,当录制的视频文件已达到其最大大小并且文件正在保存(或即将保存)时,MediaRecorder如何检测并显示消息?Toast
编辑:这是我当前拥有的代码,但尽管文件已成功保存,但回调未触发。
final Context activity=this.getBaseContext();
mediaRecorder.setOnInfoListener(new MediaRecorder.OnInfoListener() {
public void onInfo(MediaRecorder mr, int what, int extra) {
// TODO Auto-generated method stub
if(what==MediaRecorder.MEDIA_RECORDER_INFO_MAX_FILESIZE_REACHED)
Toast.makeText(activity, "There is no more space available. Video recording is stopped now.",2000).show();
}
});
// getBytesAvailable() returns bytes available on sdcard
mediaRecorder.setMaxFileSize(getBytesAvailable());
mediaRecorder.prepare();
Run Code Online (Sandbox Code Playgroud)
小智 5
MEDIA_RECORDER_INFO_MAX_FILESIZE_REACHED 表示文件已达到最大大小;SD 卡上可能有更多空间,但某些因素禁止当前录音文件变得更大。这通常是由于调用MediaRecorder.setMaxFileSize()造成的。如果不调用此方法,您将不会获得 INFO,尽管当文件达到 FAT 文件系统的 2GB 限制时您可能会获得该信息。
对于空间不足时会发生什么,我找不到明确的答案;有些人似乎认为 onError 会被调用为 == MEDIA_RECORDER_ERROR_UNKNOWN。
换句话说,调用 setMaxFileSize() ,其大小等于几秒的记录。那么你的回调应该可以工作。
| 归档时间: |
|
| 查看次数: |
2882 次 |
| 最近记录: |