【发布时间】:2011-05-25 07:00:34
【问题描述】:
我在 AVPlayer 中播放视频,现在我需要在播放时单独静音。请建议如何在目标 C 中做。
谢谢, 苏雷什
【问题讨论】:
-
self.avPlayer.muted = true;
标签: objective-c avplayer
我在 AVPlayer 中播放视频,现在我需要在播放时单独静音。请建议如何在目标 C 中做。
谢谢, 苏雷什
【问题讨论】:
标签: objective-c avplayer
从 iOS7 开始,您可以将 AVPlayer isMuted 属性设置为 true。
在 Objective C 中,该属性称为muted。
参考:https://developer.apple.com/documentation/avfoundation/avplayer/1387544-ismuted
【讨论】:
这应该可以帮助您完成...
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 4 以上使 AVPlayer 视频静音
self.player.isMuted = true
【讨论】:
SWIFT 2.0 和 SWIFT 3.0 (截至 2017 年 7 月 5 日)
对于那些对 Swift 感兴趣的人来说,这只是:
self.avPlayer.muted = true
OBJECTIVE-C 的最简单方法:
self.avPlayer.muted = true;
【讨论】:
player.isMuted = true 不适合我。
就我而言,我需要将视频永久静音。所以我使用下面的代码来实现这一点。
self.player.volume = 0.0
【讨论】:
视频播放状态时需要设置 muted 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;
}
}
}
【讨论】: