如何动态更改 AVPlayer 的音量?我的意思是,我想在每次按下按钮时将音量静音。给定的代码似乎仅在编译时更改它。运行时怎么办???
AVURLAsset *asset = [AVURLAsset URLAssetWithURL:[self myAssetURL] options:nil];
NSArray *audioTracks = [asset tracksWithMediaType:AVMediaTypeAudio];
NSMutableArray *allAudioParams = [NSMutableArray array];
for (AVAssetTrack *track in audioTracks) {
AVMutableAudioMixInputParameters *audioInputParams =[AVMutableAudioMixInputParameters audioMixInputParameters];
[audioInputParams setVolume:0.0 atTime:kCMTimeZero];
[audioInputParams setTrackID:[track trackID]];
[allAudioParams addObject:audioInputParams];
}
AVMutableAudioMix *audioZeroMix = [AVMutableAudioMix audioMix];
[audioZeroMix setInputParameters:allAudioParams];
AVPlayerItem *playerItem = [AVPlayerItem playerItemWithAsset:asset];
[playerItem setAudioMix:audioZeroMix];
AVPlayer *player = [AVPlayer playerWithPlayerItem:playerItem];
self.mPlayer = player;
[mPlayer play];
你可以发送playerItem
播放期间动态更改级别的 AVMutableAudioMix 的新实例。只需将您的按钮链接到一个操作方法,该方法使用适当的值创建一个新的 AVMutableAudioMix 实例(就像您上面所做的那样),然后使用 playerItem 的setAudioMix:
方法来设置新的混合值。 (如果您正在跨方法工作,请不要忘记保存对playerItem实例的引用以便稍后访问它。)
(N.B. setAudioMix:
中没有明确提及AVPlayerItem 文档 https://developer.apple.com/library/ios/#documentation/AVFoundation/Reference/AVPlayerItem_Class/Reference/Reference.html因为它是一个综合设置器audioMix
财产。)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)