gpt4 book ai didi

ios - 使用 AVPlayer 将实时流的音轨静音

转载 作者:可可西里 更新时间:2023-11-01 05:42:10 26 4
gpt4 key购买 nike

我正在使用 AVPlayer 播放直播流(m3U8 文件)。它使用 AVPlayer 完美播放,但我无法将其静音。

我正在使用以下代码将音频静音。

NSMutableArray *allAudioParams = [NSMutableArray array];
for (AVPlayerItemTrack *track in _player.currentItem.tracks)
{
if ([track.assetTrack.mediaType isEqual:AVMediaTypeAudio])
{
AVMutableAudioMixInputParameters *audioInputParams = [AVMutableAudioMixInputParameters audioMixInputParameters];
[audioInputParams setVolume:0.0 atTime:kCMTimeZero];
[audioInputParams setTrackID:[track.assetTrack trackID]];
[allAudioParams addObject:audioInputParams];
}
}

AVMutableAudioMix *audioZeroMix = [AVMutableAudioMix audioMix];
[audioZeroMix setInputParameters:allAudioParams];
[[_player currentItem] setAudioMix:audioZeroMix];

使用相同的代码,我可以将本地视频文件以及我在相同 AVPlayer 代码中播放的渐进式视频 url 静音。

(可能用于直播视频,AVPlayer 实例中可用的轨道可以将音量设置为零,但下一个缓冲轨道是新鲜的音量,我是对的还是任何其他原因?)

任何人都对这个问题有任何想法。非常感谢这方面的任何帮助。

最佳答案

你的假设是正确的。您不能使正在播放 HTTP 实时流的播放器静音。我已就此提交 RADAR。

在我的应用程序中,我们控制流,因此我们生成了一个没有音频的流和一个相同的有音频流,并在两者之间切换以打开和关闭声音。这是你能做的最好的。

AVAudioMix 解决方案不适用于直播。我试过了。查看底部的说明,说明它仅适用于基于文件的 Assets : http://developer.apple.com/library/ios/#qa/qa1716/_index.html

看起来 Mac 开发人员在他们的 AVPlayer 上获得了静音属性,但 iOS 还没有。

目前,如果可以的话,您必须解决流中的问题。

关于ios - 使用 AVPlayer 将实时流的音轨静音,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11095644/

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