是因为SourceBuffer只能接受特定格式的数据进行播放。m4s文件是一种分段的媒体文件格式,通常用于流媒体传输。在将m4s文件馈送到SourceBuffer之前,需要对其进行解析和处理,以符合SourceBuffer的要求。
解决这个问题的一种方法是使用Media Source Extensions(MSE)API。MSE是一种浏览器API,允许JavaScript通过SourceBuffer将媒体数据传递给HTML5视频播放器。
具体步骤如下:
new MediaSource()
来创建一个新的MediaSource对象。mediaSource.addEventListener('sourceopen', callback)
来监听sourceopen事件,该事件在MediaSource准备好接受数据时触发。mediaSource.addSourceBuffer(mime_type)
来创建一个新的SourceBuffer对象。mime_type是媒体类型,例如'video/mp4'。sourceBuffer.addEventListener('updateend', callback)
来监听updateend事件,该事件在SourceBuffer完成数据添加后触发。sourceBuffer.appendBuffer(data)
将解析后的数据追加到SourceBuffer中。data是解析后的媒体数据。mediaSource.endOfStream()
来结束数据流,并通过HTML5视频播放器进行播放。推荐的腾讯云相关产品:腾讯云视频处理(https://cloud.tencent.com/product/vod)提供了丰富的视频处理功能,包括转码、截图、水印、封面生成等,可用于处理和转换m4s文件。
领取专属 10元无门槛券
手把手带您无忧上云