【问题标题】:Cannot replay MP3 in Firefox using MediaSource even though it works in Chrome无法使用 MediaSource 在 Firefox 中重播 MP3,即使它可以在 Chrome 中使用
【发布时间】:2020-09-26 15:28:57
【问题描述】:

我在我的 Web 应用程序中实现了一个简单的音频播放器,但注意到它在 Firefox 中无法正常工作(让我... ????)。

我得到的是一个错误:

ERROR DOMException: MediaSource.addSourceBuffer: Type not supported in MediaSource

这之后是一个警告:

Cannot play media. No decoders for requested formats: audio/mpeg

这是sourceopen 事件处理程序的实现:

private onSourceOpen = (e) => {
  this.logger.debug('onSourceOpen');

  if (!this.sourceBuffer) {
    this.sourceBuffer = this.mediaSource.addSourceBuffer('audio/mpeg');
  }

  this.mediaSource.removeEventListener('sourceopen', this.onSourceOpen);
  this.fetchRange(this.trackPlayUrl, 0, this.segmentLength, (chunk) => this.appendSegment(chunk));
}

在哪里

// Create the media source object
this.mediaSource = new MediaSource();
this.mediaSource.addEventListener('sourceopen', this.onSourceOpen);

它为什么讨厌我?

【问题讨论】:

  • 不只是你。 MediaSource 讨厌所有人。 :-) 另见:stackoverflow.com/a/34498784/362536
  • @Brad 感谢您的链接。猜猜我必须使用不同的格式..也很高兴我不是一个人在这里.. ^^

标签: google-chrome firefox media-source


【解决方案1】:

在您尝试创建 SourceBuffer 之前,您应该始终调用MediaSource.isTypeSupported 以确定它是否可能播放。如果返回 false,则用户代理会告诉您它肯定不会工作。

在最新的 Firefox 上:

>> MediaSource.isTypeSupported('audio/mpeg')
<- false

它讨厌你,因为 Firefox 的 MediaSource 实现不能播放具有那种 MIME 类型的内容,而 Chrome 可以。

ISOBMFF 中的 AAC 具有非常广泛的支持,尽管这需要对您的音频进行转码和重新打包 - 试试:

MediaSource.isTypeSupported('audio/mp4; codecs="mp4a.40.2"')

【讨论】:

  • 那么,这意味着mp3不是我可以在这里使用的格式吗?是否有一个概述,我可以看到哪些浏览器通常支持哪些 mime 类型?我只是找不到任何东西..
  • ISOBMFF 容器中的 AAC 具有广泛的支持,但您必须对媒体进行转码和重新打包。对于 AAC-LC,isTypeSupported 的字符串将是 'audio/mp4, codecs="mp4a.40.2"'
  • 我刚刚尝试过,但 Chrome 似乎不支持audio/mp4。我得到falseaudio/mp4audio/mp4, codecs="mp4a.40.2"。只有audio/mpeg 返回true 询问isTypeSupported
  • 道歉 - 这是我的错误。那个逗号应该是;,给出'audio/mp4; codecs="mp4a.40.2"',它肯定会为我返回true。将编辑原始答案。
  • Ineed,现在给true。我也试过只输入aucio/aac,但这似乎对播放音频没有影响。
猜你喜欢
  • 2014-05-24
  • 2014-07-20
  • 1970-01-01
  • 2016-01-19
  • 1970-01-01
  • 2012-06-23
  • 2013-01-04
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多