From b0171bd1288bf3135808cb5e4268546920ee2982 Mon Sep 17 00:00:00 2001 From: Ryan Heise Date: Mon, 19 Jul 2021 15:46:29 +1000 Subject: [PATCH] Fix darwin setVolume before player is created. --- just_audio/darwin/Classes/AudioPlayer.m | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/just_audio/darwin/Classes/AudioPlayer.m b/just_audio/darwin/Classes/AudioPlayer.m index 1d64eff6f..fdf9d2e99 100644 --- a/just_audio/darwin/Classes/AudioPlayer.m +++ b/just_audio/darwin/Classes/AudioPlayer.m @@ -43,6 +43,7 @@ @implementation AudioPlayer { LoadControl *_loadControl; BOOL _playing; float _speed; + float _volume; BOOL _justAdvanced; NSDictionary *_icyMetadata; } @@ -100,6 +101,7 @@ - (instancetype)initWithRegistrar:(NSObject *)registrar _loadControl.preferredPeakBitRate = (NSNumber *)[NSNull null]; } _speed = 1.0f; + _volume = 1.0f; _justAdvanced = NO; _icyMetadata = @{}; __weak __typeof__(self) weakSelf = self; @@ -681,6 +683,7 @@ - (void)load:(NSDictionary *)source initialPosition:(CMTime)initialPosition init if (_playing) { _player.rate = _speed; } + [_player setVolume:_volume]; [self broadcastPlaybackEvent]; /* NSLog(@"load:"); */ /* for (int i = 0; i < [_indexedAudioSources count]; i++) { */ @@ -1053,7 +1056,10 @@ - (void)complete { } - (void)setVolume:(float)volume { - [_player setVolume:volume]; + _volume = volume; + if (_player) { + [_player setVolume:volume]; + } } - (void)setSpeed:(float)speed { @@ -1084,7 +1090,7 @@ - (void)setSpeed:(float)speed { // There is no way to reliably query whether the requested speed is // supported. _speed = speed; - if (_playing) { + if (_playing && _player) { _player.rate = speed; } [self updatePosition];