我正在尝试学习如何在浏览器中记录媒体,我可能会让事情变得过于复杂。有大量直接的例子,但当录音被推到一个高度时,我陷入了困境。Blob
具有任意选择的媒体类型的对象,而不检查该格式是否受支持。因此,我认为有一个清单,或者人们只是继续以过去的经验为基础。
例如,
从Mido22/MediaRecorder-样本 https://github.com/Mido22/MediaRecorder-sample/blob/master/script.js:
mediaOptions = {
video: {
tag: 'video',
type: 'video/webm',
ext: '.mp4',
gUM: {video: true, audio: true}
},
audio: {
tag: 'audio',
type: 'audio/ogg',
ext: '.ogg',
gUM: {audio: true}
}
};
media = mv.checked ? mediaOptions.video : mediaOptions.audio;
//...
function makeLink(){
let blob = new Blob(chunks, {type: media.type })
//...
or from MDN 使用媒体流录制 API https://developer.mozilla.org/en-US/docs/Web/API/MediaStream_Recording_API/Using_the_MediaStream_Recording_API:
var blob = new Blob(chunks, { 'type' : 'audio/ogg; codecs=opus' });
The specs https://w3c.github.io/FileAPI/#blob and their https://developer.mozilla.org/en-US/docs/Web/API/Blob various https://developer.mozilla.org/en-US/docs/Web/API/Blob/Blob 文档 https://developer.mozilla.org/en-US/docs/Web/API/MediaRecorder大多数是通用描述,这是完全可以理解的,因为用户代理需要实现它们。
第一个答案这个问题 https://stackoverflow.com/questions/35466078/specifying-codecs-with-mediarecorder这几乎就是我的想法,但我想知道是否有更容易访问且最新的列表?
更新:
我感觉好像我刚刚从岩石下爬出来,因为我一发布这篇文章,我就意识到了两种最明显的方法......
- 查询媒体格式http://caniuse.com/ http://caniuse.com/
- MDN 支持的媒体格式 https://developer.mozilla.org/en-US/docs/Web/HTML/Supported_media_formats
经过 @Kaiido 的指点:
- 媒体记录器 APIisTypeSupported https://w3c.github.io/mediacapture-record/MediaRecorder.html#example1
- getSupportedTypes() https://github.com/w3c/mediacapture-record/pull/65