gpt4 book ai didi

objective-c - 通过 AVFoundation 在后台仅播放音轨

转载 作者:行者123 更新时间:2023-12-01 16:54:02 25 4
gpt4 key购买 nike

我有一个 .mp4 文件,带有视频轨道和音频轨道。我只想在后台播放音轨, 有什么办法吗? AV基金会 ?

还是其他框架?

任何想法将不胜感激

最佳答案

修改后的解决方案

我认为以下链接/示例将帮助您解决问题。答案在于在您选择播放 Assets 之前禁用视频轨道的能力。

How to mute a video's audio track是一个可以反转和推断如何禁用视频轨道的解决方案的示例。当人们认为视频只是 Assets 的另一个 AVPlayerItemTrack 时,此功能似乎是可能的:

AVFoundation AVPlayerItemTrack

我认为关键组件是禁用包含 myTracks 数组中视频的 AVPlayerItemTrack,而不是禁用音轨。您需要隔离适当的标准,以区分视频轨道与音频 R 和音频 L 轨道。我相信这个框架会带来成功。让我知道事情进展如何。

- (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object
change:(NSDictionary *)change context:(void *)context {

if(context == &TracksStatusContext && [Utilities
getSettings].videoMuted == YES)
{
NSArray * myTracks = self.myPlayerItem.tracks;
for(int i = 0; i < [myTracks count]; i++)
{
if([[[myTracks objectAtIndex:i] assetTrack].mediaType
isEqualToString:AVMediaTypeAudio] == YES)
{
((AVPlayerItemTrack *)[myTracks
objectAtIndex:i]).enabled = NO;
}
}
return;
}

if (context == &ItemStatusContext) {
[self.myPlayerView.player play];
return;
}
return;
}

Apple AVFoundation Reference Docs

关于objective-c - 通过 AVFoundation 在后台仅播放音轨,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13467407/

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