如何检测iOS Sender应用中用户对活动音轨的设置变更?
解决方案
不需要自定义音轨选择视图控制器,你可以通过对比前后的活动音轨状态来检测变化,具体步骤如下:
在你的代理类中添加一个属性,用于保存上一次的活动音轨ID集合:
private var lastActiveTrackIDs: Set<String>?在
mediaController(_:didUpdate)方法中,获取当前的活动音轨ID集合,与上次保存的集合对比,判断是否发生变更:func mediaController(_ mediaController: GCKMediaController, didUpdate mediaStatus: GCKMediaStatus?) { guard let currentActiveTrackIDs = mediaStatus?.activeTrackIDs else { return } // 首次初始化或音轨状态变更时执行逻辑 if lastActiveTrackIDs != currentActiveTrackIDs { // 这里处理活动音轨变更后的业务逻辑 print("活动音轨已更新: \(currentActiveTrackIDs)") // 更新保存的历史音轨ID集合 lastActiveTrackIDs = currentActiveTrackIDs } }
说明
GCKMediaStatus的activeTrackIDs是Set
内容的提问来源于stack exchange,提问作者Aurelien
相关产品推荐
相关产品推荐

