2017-09-15 2 views
0

Ich muss am Anfang Volume-Einblendung durchführen und den Wiedergabe-Stream mit AVPlayer fortsetzen. Ich fand ein Beispiel:AVPlayer-Lautstärke-Einblendung

assert(_player.currentItem.tracks.firstObject); 
AVMutableAudioMixInputParameters* fadeIn = [AVMutableAudioMixInputParameters audioMixInputParametersWithTrack:_player.currentItem.tracks.firstObject]; 
[fadeIn setVolume:0 atTime:kCMTimeZero]; 
[fadeIn setVolume:1 atTime:CMTimeMake(2, 1)]; 
NSMutableArray* paramsArray = [NSMutableArray new]; 
[paramsArray addObject:fadeIn]; 
AVMutableAudioMix* audioMix = [AVMutableAudioMix audioMix]; 
audioMix.inputParameters = paramsArray; 
_player.currentItem.audioMix = audioMix; 

Aber in der realen Zeit habe ich Crash in der ersten Zeile und IDE-Warnung „Inkompatible Zeigertypen‚AVPlayerItemTrack * _Nullable‘auf Parameter des Typs‚AVAssetTrack * _Nullable‘Senden“ in der zweiten Linie.

Ich arbeite vor kurzem mit avplayer und braucht Hilfe

danken Ihnen.

Antwort

0

Ich habe Abhilfe Verwendung MPVolumeView

for (UIView *view in [volumeView subviews]){ 
     if (![view.class.description isEqualToString:@"MPVolumeSlider"]) { 
      continue; 
     } 

     UISlider *volumeViewSlider = (UISlider *)view; 
     // volume from 0 to 1 
     [volumeViewSlider setValue:volume animated:YES]; 
     [volumeViewSlider sendActionsForControlEvents:UIControlEventTouchUpInside]; 

     break; 
    } 

Hoffe, es hilft

+0

danken Ihnen. Aber ich muss programmgesteuert das Volumen von Null auf 1 in ein paar Sekunden ohne Benutzerinteraktion erhöhen –

+0

AVPlayer hat Eigenschaft Volumen. Kannst du versuchen, es zu ändern? –

+0

Ja ... _player.volume = _player.volume + 0.05; if (_player.volume == 1.) zurückgeben; else { [self performSelector: @selector (soundFadeOut) withObject: nil afterDelay: 0.3]; } –