2015-08-05 13 views
10

Ich habe einen AVPlayer mit AVPlayerItem. Was ich will, ist die Audio-Wiedergabe von AVPlayer auszuschalten. Ich möchte nur Video abspielen.Audio-Wiedergabe von AVPlayer ausschalten?

Kann mir jemand helfen? Vielen Dank!

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]; 

Antwort

11

AVPlayer haben Option

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

Sie

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

schreiben kann, und verwenden Sie es, wie Sie

- (void) startPlayingVideo 
{ 

    [self muteSound:YES]; 

    //other code 

} 
0

möchten Sie können den Ton stumm schalten, indem folgenden Code Implementierung in 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]; 

Die folgenden Links können Ihnen helfen.

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

Falls jemand für suchen Swift 4:

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

Randbemerkung: das Video stumm schalten Video Sound startet nicht zurückgesetzt. Es funktioniert nur als eine Funktion für den gesunden Menschenverstand.