我有一个MP4 URL,仅包含视频和单独的音轨。我可以通过更改“主”流URL和相应的内容类型来播放一个或另一个,但显然我想要两者,而不是一个。
(愚蠢的视频)https://v.redd.it/3hyw7hwoajn21/DASHPlaylist.mpd
有一个核心URL您只能在https://v.redd.it/3hyw7hwoajn21/DASH_720处获得带有音频的MP4视频,而其对应的音轨在https://v.redd.it/3hyw7hwoajn21/audio上
如果我使用iOS SDK播放MP4,则可以正常运行,但没有音频:
let url = URL(string: "https://v.redd.it/3hyw7hwoajn21/DASH_720")!
let mediaInfoBuilder = GCKMediaInformationBuilder(contentURL: url)
mediaInfoBuilder.contentID = url.absoluteString
mediaInfoBuilder.streamType = .buffered
mediaInfoBuilder.streamDuration = TimeInterval(75)
mediaInfoBuilder.contentType = "video/mp4"
mediaInfoBuilder.metadata = metadata
let mediaInfo = mediaInfoBuilder.build()
因此,我尝试在调用build()
之前添加音频轨道,并尝试遵循documentation here:
mediaInfoBuilder.mediaTracks = [GCKMediaTrack(identifier: 98911, contentIdentifier: nil, contentType: "audio/mp4", type: GCKMediaTrackType.audio, textSubtype: GCKMediaTextTrackSubtype.unknown, name: "Fun time fun", languageCode: "en", customData: nil)]
但是结果是一样的:没有音频。
我做错了吗?
答案 0 :(得分:1)
如果不支持,则音频和视频流必须位于同一清单中,以便我们支持它,否则SDK不支持。通常,ChromeCast的硬件仅限于允许一个mediaElement。一些应用程序设法在读书时增加声音效果,这可能会使用WebAudio,但这完全是在应用程序中完成的。