gpt4 book ai didi

objective-c - 在 AVPlayer 中静音 HTTP 实时流

转载 作者:可可西里 更新时间:2023-11-01 04:31:21 25 4
gpt4 key购买 nike

我已经尝试解决这个问题整整 48 小时了,但一无所获。我有 2 个 AVPlayer 对象播放不同的 http 直播流。显然,我不希望它们同时播放音频,因此我需要一种方法来将其中一个视频静音。

苹果 suggests this用于使 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];

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

我不知所措,我想不出我可以阅读并重新阅读另一篇文档以获得好的答案。如果有人可以提供帮助,那就太好了。

*更新:我联系了 Apple,根据 AVFoundation 团队的说法,不可能将 HLS 视频的轨道静音或禁用。我个人觉得这是一个错误,所以我提交了 bug report (你应该做同样的事情来告诉 Apple 这是一个问题)。你也可以尝试提交 feature enhancement request通过他们的反馈页面。

最佳答案

新的 iOS 7 回答: AVPlayer 现在有两个新属性“音量”和“静音”。使用那些!


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

我一直在处理同样的事情。我们创建了静音流和带音频的流。要静音或取消静音,您可以调用 [player replaceCurrentItemWithPlayerItem:muteStream]

我还提交了错误报告。看起来 AVPlayer 在 MacOS 10.7 上有这个功能,但它还没有在 iOS 上实现。

AVAudioMix is documented not to work on URL assets here

当然我还是试过了,和你一样,我发现它真的行不通。

关于objective-c - 在 AVPlayer 中静音 HTTP 实时流,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11519516/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com