29

我在 AVPlayer 中播放视频,现在我需要在播放时单独将音频静音。请建议如何在目标C中做。

谢谢, 苏雷什

4

6 回答 6

32

从 iOS7 开始,您可以将 AVPlayerisMuted属性设置为true.

在 Objective C 中,该属性被称为muted

参考:https ://developer.apple.com/documentation/avfoundation/avplayer/1387544-ismuted

于 2015-01-28T03:34:51.877 回答
10

这应该可以帮助您完成...

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];
于 2011-06-04T04:00:06.010 回答
9

对于上面的 Swift 4 使 AVPlayer 视频静音

self.player.isMuted = true
于 2018-11-15T04:34:57.243 回答
6

SWIFT 2.0 和 SWIFT 3.0 (截至 2017 年 7 月 5 日)

对于那些对 Swift 感到好奇的人来说,这只是:

self.avPlayer.muted = true

OBJECTIVE-C 的最简单方法:

self.avPlayer.muted = true;
于 2017-02-04T00:04:53.890 回答
2

player.isMuted = true不适合我。

就我而言,我需要将视频永久静音。所以我使用下面的代码来实现这一点。

self.player.volume = 0.0
于 2019-06-20T16:03:32.063 回答
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;
        }
    }
}
于 2018-08-04T17:11:36.557 回答