Мне нужно переключить звуковую дорожку в полученном потоке видео в формате m3u8, как я могу это сделать? Возможно? Как их обнаружить? (Я получить поток СВУ, 10seconds сегменты .ts, формат MPEG-2, транспортный поток)Как переключить звуковую дорожку в потоке видео m3u8?
1
A
ответ
0
На основании этого вопроса:
Alternate audio tracks with HTTP Live Streaming
мне удалось получить звуковые дорожки из потока HLS закодированы Fairplay (я извлекаю треки после декодирования содержимого). Поток имеет два разных аудио, английский и испанский, поэтому я использую словарь для хранения каждого звука, извлеченного из потока HLS, и облегчения переключения между ними.
Каждое аудио представлено объектом AVMediaSelectionOption, и это объект, который вы должны передать объекту AVPlayerItem (в методе выбора) для переключения звука.
let mediaSelectionGroup = self.player!.currentItem!.asset.mediaSelectionGroup(forMediaCharacteristic: AVMediaCharacteristicAudible)!
print("ASSET AUDIO TRACKS: \(mediaSelectionGroup)")
self.mediaSelectionOptions = Dictionary<String, AVMediaSelectionOption>()
for mediaSelectionOption in self.mediaSelectionGroup!.options {
if let locale = mediaSelectionOption.locale, let languageCode = locale.languageCode {
if languageCode == "en" {
self.mediaSelectionOptions!["Inglés"] = mediaSelectionOption
} else if languageCode == "es" {
self.mediaSelectionOptions!["Español"] = mediaSelectionOption
}
}
}
// Set Spanish audio
self.player!.currentItem!.select(
self.audioManager!.mediaSelectionOptions!["Español"],
in: mediaSelectionGroup
)
// Set English audio
self.player!.currentItem!.select(
self.audioManager!.mediaSelectionOptions!["Inglés"],
in: mediaSelectionGroup
)
Надеюсь, это поможет!
Вы хотите только воспроизвести звук из видеофайла m8u3? – tnylee
Нет, аудио и видео вместе, но также могут переключаться между аудиозаписями) – Nubaslon
Ваша ссылка m3u8 должна содержать как аудио, так и видео. то просто используйте медиаплеер, чтобы играть с этой ссылкой – tnylee