MediaSource 中 独立音视频流 怎么放一起播放

Youfeed
  • 13

这几天 被 MediaSource 播放DASH视频流的问题卡住了,音视频流是分开的,我这么创建

var track_audio = mediaSource.addSourceBuffer(`audio/mp4; codecs="mp4a.40.2"`)
var track_video = mediaSource.addSourceBuffer(`audio/mp4; codecs="avc1.42c014"`)

打印 SourceBufferlist 有二个

然后 分别对 track_audio track_video 进行
0.Initializing(初始化切片)
1.appendBuffer(new Uint8Array(.));
2.onupdateend mediaSource.endOfStream();
3.media(分段加载)
4.appendBuffer(new Uint8Array(.));
循环 3.4.

我发现 track_audio track_video 我只对视频或音频 是成功的!

我二个如果 一起拉流 就会报错,要么放声音,要么光视频

我做了以下尝试:

1.是不是 addSourceBuffer 要加入 声音与视频都有的 SourceBuffer

var mine = `audio/mp4; codecs="avc1.42c014, mp4a.40.2"`;
var track = mediaSource.addSourceBuffer(mine);

2.猜测 我是不是 要创建 二个mediaSource 一个流对应一个?
3.看W3C SourceBuffer里有 text_track audio_track text_track 这个区分addSourceBuffer吗?

姿势 不对不行,网上看的都是直接拉的单个音视频流,这种 音视频分开的是怎么合到一起的呢?

回复
阅读 1.3k
1 个回答

我刚刚 找到一个 文章

https://blog.csdn.net/camike/...

我使用方法没错

网页偶尔可以播放 不能播放 报
Failed to execute 'endOfStream' on 'MediaSource': The 'updating' attribute is true on one or more of this MediaSource's SourceBuffers.
问题

代码定位 为 that.data.mediaSource.endOfStream();

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
宣传栏