1
我需要切換格式爲m3u8的接收視頻流中的音軌,我該怎麼做? 有可能嗎?如何檢測它們? (ⅰ接收流HLS,10秒段.TS,格式MPEG-2,傳輸流)如何在m3u8視頻流中切換音軌?
我需要切換格式爲m3u8的接收視頻流中的音軌,我該怎麼做? 有可能嗎?如何檢測它們? (ⅰ接收流HLS,10秒段.TS,格式MPEG-2,傳輸流)如何在m3u8視頻流中切換音軌?
基於這樣一個問題:
Alternate audio tracks with HTTP Live Streaming
我設法檢索從與編碼的HLS流的音頻軌道Fairplay(我在解碼內容後檢索曲目)。該流有兩種不同的音頻,英文和西班牙文,所以我使用字典來保存從HLS流中提取的每個音頻並簡化它們之間的切換。
每個音頻都由一個AVMediaSelectionOption對象表示,這就是您必須傳遞給AVPlayerItem對象(在select方法中)進行音頻切換的對象。
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 2014-08-27 11:19:09
不,音頻和視頻在一起,但也可以切換音軌) – Nubaslon 2014-08-27 12:12:23
您的m3u8鏈接應該包含音頻和視頻。那麼只需使用媒體播放器來播放該鏈接 – tnylee 2014-08-27 12:13:37