在AVPlayer中静音HTTP实时流

Ste*_*e E 5 streaming objective-c http-live-streaming ios avplayer

我一直在努力解决这个问题48小时,但没有提出任何问题.我有2个AVPlayer对象播放不同的http直播流.显然,我不希望他们同时播放音频,所以我需要一种方法来静音其中一个视频.

Apple 建议将其用于静音AVPlayer播放的音轨......

NSMutableArray *allAudioParams = [NSMutableArray array];
for (AVPlayerItemTrack *track in [_playerItem tracks]) {
    if ([track.assetTrack.mediaType isEqualToString:AVMediaTypeAudio]) {
        AVMutableAudioMixInputParameters *audioInputParams = [AVMutableAudioMixInputParameters audioMixInputParameters];
        [audioInputParams setVolume:0.0 atTime:CMTimeMakeWithSeconds(0,1)];
        [audioInputParams setTrackID:[track.assetTrack trackID]];
        [allAudioParams addObject:audioInputParams];
        // Added to what Apple Suggested
        [track setEnabled:NO];
    }
}

AVMutableAudioMix *audioZeroMix = [AVMutableAudioMix audioMix];
[audioZeroMix setInputParameters:allAudioParams];
[_playerItem setAudioMix:audioZeroMix];
Run Code Online (Sandbox Code Playgroud)

当这不起作用(经过多次迭代)后,我找到了AVPlayerItemTrack的enabled属性并尝试将其设置为NO.也没什么.这甚至没有注册为做任何事情,因为当我尝试NSLog(@"%x",track.enabled)时,它仍然显示为1.

我很茫然,我想不出另一篇文件,我可以阅读并重新阅读以获得一个好的答案.如果有人可以提供帮助,那就太棒了.

*更新:我掌握了Apple,根据AVFoundation团队的说法,无法静音或禁用HLS视频的曲目.我个人认为这是一个错误所以我提交了一个错误报告(你应该这样做,告诉Apple这是一个问题).您还可以尝试通过其反馈页面提交功能增强请求.

Cor*_*uff 6

新的iOS 7答案: AVPlayer现在有2个新属性'音量'和'静音'.用那些!


这是iOS 7之前生活的原始答案:

我一直在处理同样的事情.我们用音频创建了静音流和流.要拨打静音或取消静音[player replaceCurrentItemWithPlayerItem:muteStream].

我还提交了一份错误报告.看起来AVPlayer在MacOS 10.7上有这个功能,但它尚未进入iOS.

AVAudioMix 记录在这里不适用于URL资产

当然我还是尝试过,和你一样,我发现它确实不起作用.