2015-08-05 32 views
10

Tôi có AVPlayer với AVPlayerItem. Những gì tôi muốn là tắt phát lại âm thanh ra AVPlayer. Tôi muốn chơi video.Tắt phát lại âm thanh của AVPlayer?

Ai đó có thể giúp tôi không? Cảm ơn bạn!

self.avPlayerItem = [AVPlayerItem playerItemWithURL:self.videoUrl]; 
    self.avPlayer = [AVPlayer playerWithPlayerItem:self.avPlayerItem]; 
    [self.avPlayer play]; 
    self.avPlayer.actionAtItemEnd = AVPlayerActionAtItemEndNone; 


    self.avPlayerLayer = [AVPlayerLayer playerLayerWithPlayer:self.avPlayer]; 
    self.avPlayerLayer.videoGravity = AVLayerVideoGravityResizeAspectFill; 

    [[NSNotificationCenter defaultCenter] addObserver:self 
              selector:@selector(playerItemDidPlayToEndTime:) 
               name:AVPlayerItemDidPlayToEndTimeNotification 
               object:self.avPlayerItem]; 


    CGRect screenRect = [[UIScreen mainScreen] bounds]; 

    self.avPlayerLayer.frame = CGRectMake(0, 0, screenRect.size.width , screenRect.size.height); 
    [self.view.layer insertSublayer:self.avPlayerLayer atIndex:0]; 

Trả lời

11

AVPlayer có tùy chọn

@property (nonatomic, getter=isMuted) BOOL muted NS_AVAILABLE(10_7, 7_0); 

Bạn có thể viết

- (void) muteSound:(BOOL)mute 
{ 
    self.avPlayer.muted = mute; 
} 

Và sử dụng nó, làm thế nào bạn muốn

- (void) startPlayingVideo 
{ 

    [self muteSound:YES]; 

    //other code 

} 
0

Bạn có thể tắt âm thanh bằng cách thực hiện đoạn mã sau vào viewDidLoad() .

AVURLAsset *asset = [AVURLAsset URLAssetWithURL:[self myAssetURL] 
options:nil]; 
NSArray *audioTracks = [asset tracksWithMediaType:AVMediaTypeAudio]; 

// Mute all the audio 
tracksNSMutableArray *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]; 

Liên kết sau có thể giúp bạn.

  1. https://goo.gl/WYJNUF
  2. https://goo.gl/epHNGs
0

Trong trường hợp ai đó đang tìm kiếm Swift 4:

player.isMuted = true // To mute the sound 
player.isMuted = false // To un-mute the sound 

Side lưu ý: tắt tiếng video không thiết lập lại các âm thanh video để bắt đầu. Nó hoạt động như một tính năng tắt tiếng thông thường.

Các vấn đề liên quan