首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在m3u8视频流中切换音轨?

如何在m3u8视频流中切换音轨?
EN

Stack Overflow用户
提问于 2014-08-27 18:56:50
回答 1查看 2.2K关注 0票数 1

我需要在接收到的m3u8格式的视频流中切换音轨,该怎么做?有可能吗?如何检测它们?(我接收流HLS,10秒段.ts,MPEG-2格式,传输流)

EN

回答 1

Stack Overflow用户

发布于 2018-02-28 21:26:42

基于这个问题:

Alternate audio tracks with HTTP Live Streaming

我设法从用Fairplay编码的HLS流中检索音轨(我在解码内容后检索音轨)。该流有两种不同的音频,英语和西班牙语,因此我使用字典来保存从HLS流中提取的每个音频,并简化它们之间的切换。

每个音频都由一个AVMediaSelectionOption对象表示,这是您必须传递给AVPlayerItem对象(在select方法中)以执行音频切换的对象。

代码语言:javascript
复制
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
            )

希望它能帮上忙!

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25525354

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档