MediaRecorder.OutputFormat.MUXER_WEBM不存在
时间: 2023-12-09 09:02:40 浏览: 132
`MediaRecorder.OutputFormat.MUXER_WEBM` 是在 Android API Level 24(即 Android 7.0)中引入的,如果你的设备的 API Level 低于 24,这个常量确实是不存在的。如果你想要在低于 API Level 24 的设备上录制 WebM 格式的视频,可以考虑使用第三方库,比如 libvpx 和 libvorbis。如果你需要更多关于在 Android 上录制 WebM 格式视频的信息,可以参考 WebM 官方网站上的相关文档。
相关问题
如何使用MediaRecorder.AudioSource.VOICE_COMMUNICATION进行回声消除
使用 `MediaRecorder.AudioSource.VOICE_COMMUNICATION` 可以在录制音频时进行回声消除,以下是使用该方法进行回声消除的步骤:
1. 创建 `MediaRecorder` 对象,并设置音频来源为 `MediaRecorder.AudioSource.VOICE_COMMUNICATION`。
```
MediaRecorder recorder = new MediaRecorder();
recorder.setAudioSource(MediaRecorder.AudioSource.VOICE_COMMUNICATION);
```
2. 设置其他的音频参数,例如输出格式、编码器等。
```
recorder.setOutputFormat(MediaRecorder.OutputFormat.AAC_ADTS);
recorder.setAudioEncoder(MediaRecorder.AudioEncoder.AAC);
```
3. 调用 `setAudioEncodingQuality` 方法,并设置参数为 `MediaRecorder.AudioEncodingQuality.HIGH`。
```
recorder.setAudioEncodingQuality(MediaRecorder.AudioEncodingQuality.HIGH);
```
4. 调用 `setAudioChannels` 方法,并设置参数为 `1`,表示单声道录制。
```
recorder.setAudioChannels(1);
```
5. 调用 `prepare` 方法进行准备,然后调用 `start` 方法开始录制。
```
recorder.prepare();
recorder.start();
```
需要注意的是,使用 `MediaRecorder.AudioSource.VOICE_COMMUNICATION` 进行回声消除可能会影响音频质量和延迟,因此需要根据实际情况进行调整。同时,在录制音频时,也需要注意环境噪声和其他干扰因素的影响。
将div转化为canvas后,又转化为视频,用mediaRecorder.start()录制,5秒后mediaRecorder.onstop(),生成路径插入页面之后不显示时长,设置mediaRecorder.duration 也不可以
在将`<div>`转换为`<canvas>`,再转换为视频后,生成的视频是没有`duration`属性的,因此设置`mediaRecorder.duration`也不会生效。
要想在页面中显示视频的时长,可以通过JavaScript的`video`标签来实现。你可以在页面中插入一个`<video>`标签,设置其`src`属性为生成的视频路径,然后在`loadedmetadata`事件中获取视频的时长,并将其显示在页面中。
代码示例:
HTML:
```html
<video id="myVideo" controls></video>
<p>视频时长:<span id="duration"></span></p>
```
JavaScript:
```javascript
const video = document.getElementById('myVideo');
const durationSpan = document.getElementById('duration');
// 设置视频路径
video.src = 'path/to/your/video.mp4';
// 当视频metadata加载完成后
video.addEventListener('loadedmetadata', () => {
// 获取视频时长
const duration = video.duration;
// 显示视频时长
durationSpan.innerText = duration + '秒';
});
```
阅读全文