我正在使用AVPlayer播放视频,现在需要在播放时仅静音音频。请建议如何在objective C中实现。
谢谢, Suresh
我正在使用AVPlayer播放视频,现在需要在播放时仅静音音频。请建议如何在objective C中实现。
谢谢, Suresh
isMuted
属性设置为true
。 在Objective C中,该属性被称为muted
。如何使用 Swift 4 及以上版本使 AVPlayer 视频静音
self.player.isMuted = true
这应该能帮到你…
AVURLAsset *asset = [[avPlayer currentItem] asset];
NSArray *audioTracks = [asset tracksWithMediaType:AVMediaTypeAudio];
// Mute all the audio tracks
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];
[[avPlayer currentItem] setAudioMix:audioZeroMix];
SWIFT 2.0和SWIFT 3.0(截止2017年7月5日)
对于那些好奇Swift的人来说,它只是:
self.avPlayer.muted = true
最简单的Objective-C方法:
self.avPlayer.muted = true;
player.isMuted = true
对我不起作用。
在我的情况下,我需要视频永久静音。因此,我使用以下代码来实现这一点。
player.muted(true);
最初的回答:
self.player.volume = 0.0
在视频播放状态下,需要将静音设置为false。
添加监听器:
[itemPlayer addObserver:self
forKeyPath:kStatusKey
options:NSKeyValueObservingOptionInitial | NSKeyValueObservingOptionNew
context:@"AVPlayerStatus"];
代码:
-(void)observeValueForKeyPath:(NSString *)path ofObject:(id)object change:(NSDictionary *)change context:(void *)context {
if (context == @"AVPlayerStatus") {
AVPlayerStatus status = [[change objectForKey:NSKeyValueChangeNewKey] integerValue];
switch (status) {
case AVPlayerStatusReadyToPlay: {
if (isMuted) {
layerPlayer.player.muted = true;
}
}
default:
break;
}
}
}