From fb0cd4af7df6a995023d5586e537c778ee91c870 Mon Sep 17 00:00:00 2001 From: Ryan Heise Date: Wed, 5 Feb 2020 13:30:24 +1100 Subject: [PATCH] Fix buffering behaviour and eventSink bug on iOS --- example/ios/Flutter/Flutter.podspec | 18 ++++++++++++++++++ ios/Classes/AudioPlayer.m | 10 ++++++++-- 2 files changed, 26 insertions(+), 2 deletions(-) create mode 100644 example/ios/Flutter/Flutter.podspec diff --git a/example/ios/Flutter/Flutter.podspec b/example/ios/Flutter/Flutter.podspec new file mode 100644 index 0000000..5ca3041 --- /dev/null +++ b/example/ios/Flutter/Flutter.podspec @@ -0,0 +1,18 @@ +# +# NOTE: This podspec is NOT to be published. It is only used as a local source! +# + +Pod::Spec.new do |s| + s.name = 'Flutter' + s.version = '1.0.0' + s.summary = 'High-performance, high-fidelity mobile apps.' + s.description = <<-DESC +Flutter provides an easy and productive way to build and deploy high-performance mobile apps for Android and iOS. + DESC + s.homepage = 'https://flutter.io' + s.license = { :type => 'MIT' } + s.author = { 'Flutter Dev Team' => 'flutter-dev@googlegroups.com' } + s.source = { :git => 'https://github.com/flutter/engine', :tag => s.version.to_s } + s.ios.deployment_target = '8.0' + s.vendored_frameworks = 'Flutter.framework' +end diff --git a/ios/Classes/AudioPlayer.m b/ios/Classes/AudioPlayer.m index 19fc2ba..1c2d2f5 100644 --- a/ios/Classes/AudioPlayer.m +++ b/ios/Classes/AudioPlayer.m @@ -114,6 +114,7 @@ } - (void)broadcastPlaybackEvent { + if (!_eventSink) return; long long now = (long long)([[NSDate date] timeIntervalSince1970] * 1000.0); _updatePosition = [self getCurrentPosition]; _updateTime = now; @@ -150,6 +151,11 @@ [self broadcastPlaybackEvent]; } +- (void)setPlaybackBufferingState:(enum PlaybackState)state buffering:(BOOL)buffering { + _buffering = buffering; + [self setPlaybackState:state]; +} + - (void)setUrl:(NSString*)url result:(FlutterResult)result { // TODO: error if already connecting _connectionResult = result; @@ -271,7 +277,7 @@ [_player pause]; [_player seekToTime:CMTimeMake(0, 1000) completionHandler:^(BOOL finished) { - [self setPlaybackState:stopped]; + [self setPlaybackBufferingState:stopped buffering:NO]; }]; } @@ -279,7 +285,7 @@ [_player pause]; [_player seekToTime:CMTimeMake(0, 1000) completionHandler:^(BOOL finished) { - [self setPlaybackState:completed]; + [self setPlaybackBufferingState:completed buffering:NO]; }]; }