1
+ #import " AudiofileplayerPlugin.h"
1
2
#import < AVFoundation/AVFoundation.h>
2
3
#import < MediaPlayer/MediaPlayer.h>
3
- #import " AudiofileplayerPlugin.h"
4
4
#import " ManagedPlayer.h"
5
5
6
6
static NSString *const kChannel = @" audiofileplayer" ;
66
66
static NSString *const kMediaSkipBackward = @" skipBackward" ;
67
67
static NSString *const kMediaSkipIntervalSeconds = @" skipIntervalSeconds" ;
68
68
69
- @interface AudiofileplayerPlugin () <FLTManagedPlayerDelegate>
69
+ @interface AudiofileplayerPlugin ()<FLTManagedPlayerDelegate>
70
70
@end
71
71
72
72
@implementation AudiofileplayerPlugin {
@@ -79,8 +79,8 @@ @implementation AudiofileplayerPlugin {
79
79
+ (void )registerWithRegistrar : (NSObject <FlutterPluginRegistrar> *)registrar {
80
80
FlutterMethodChannel *channel =
81
81
[FlutterMethodChannel methodChannelWithName: kChannel binaryMessenger: [registrar messenger ]];
82
- AudiofileplayerPlugin *instance = [[AudiofileplayerPlugin alloc ] initWithRegistrar: registrar
83
- channel: channel];
82
+ AudiofileplayerPlugin *instance =
83
+ [[AudiofileplayerPlugin alloc ] initWithRegistrar: registrar channel: channel];
84
84
[registrar addMethodCallDelegate: instance channel: channel];
85
85
[registrar addApplicationDelegate: instance];
86
86
}
@@ -96,8 +96,7 @@ - (instancetype)initWithRegistrar:(NSObject<FlutterPluginRegistrar> *)registrar
96
96
[self addCommandHandlers ];
97
97
[self disableCommandHandlers ];
98
98
// Set audio category to initial default of 'playback'.
99
- [[AVAudioSession sharedInstance ] setCategory: AVAudioSessionCategoryPlayback
100
- error: nil ];
99
+ [[AVAudioSession sharedInstance ] setCategory: AVAudioSessionCategoryPlayback error: nil ];
101
100
}
102
101
return self;
103
102
}
@@ -110,7 +109,7 @@ - (void)handleMethodCall:(FlutterMethodCall *)call result:(FlutterResult)result
110
109
NSLog (@" handleMethodCall: method = %@ " , call.method );
111
110
112
111
if ([call.method isEqualToString: kLoadMethod ]) {
113
- // Loading an audio instance.
112
+ // Loading an audio instance.
114
113
[self handleLoadWithCall: call result: result];
115
114
return ;
116
115
} else if ([call.method isEqualToString: kAudioCategoryMethod ]) {
@@ -121,7 +120,8 @@ - (void)handleMethodCall:(FlutterMethodCall *)call result:(FlutterResult)result
121
120
category = AVAudioSessionCategorySoloAmbient;
122
121
} else if ([categoryString isEqualToString: kAudioCategoryAmbientMixed ]) {
123
122
category = AVAudioSessionCategoryAmbient;
124
- } if ([categoryString isEqualToString: kAudioCategoryPlayback ]) {
123
+ }
124
+ if ([categoryString isEqualToString: kAudioCategoryPlayback ]) {
125
125
category = AVAudioSessionCategoryPlayback;
126
126
}
127
127
[[AVAudioSession sharedInstance ] setCategory: category error: nil ];
@@ -320,8 +320,9 @@ - (void)addCommandHandlers {
320
320
action: @selector (handleSeekForwardCommand: )];
321
321
[remoteCommandCenter.seekBackwardCommand addTarget: self
322
322
action: @selector (handleSeekBackwardCommand: )];
323
- [remoteCommandCenter.changePlaybackPositionCommand addTarget: self
324
- action: @selector (handleChangePlaybackPositionCommand: )];
323
+ [remoteCommandCenter.changePlaybackPositionCommand
324
+ addTarget: self
325
+ action: @selector (handleChangePlaybackPositionCommand: )];
325
326
[remoteCommandCenter.skipForwardCommand addTarget: self
326
327
action: @selector (handleSkipForwardCommand: )];
327
328
[remoteCommandCenter.skipBackwardCommand addTarget: self
@@ -332,9 +333,9 @@ - (void)disableCommandHandlers {
332
333
MPRemoteCommandCenter *remoteCommandCenter = [MPRemoteCommandCenter sharedCommandCenter ];
333
334
remoteCommandCenter.togglePlayPauseCommand .enabled = NO ;
334
335
remoteCommandCenter.playCommand .enabled = NO ;
335
- remoteCommandCenter.pauseCommand .enabled = NO ;
336
+ remoteCommandCenter.pauseCommand .enabled = NO ;
336
337
remoteCommandCenter.nextTrackCommand .enabled = NO ;
337
- remoteCommandCenter.previousTrackCommand .enabled = NO ;
338
+ remoteCommandCenter.previousTrackCommand .enabled = NO ;
338
339
remoteCommandCenter.seekForwardCommand .enabled = NO ;
339
340
remoteCommandCenter.seekBackwardCommand .enabled = NO ;
340
341
remoteCommandCenter.changePlaybackPositionCommand .enabled = NO ;
@@ -378,11 +379,11 @@ - (void)enableCommandHandlersFromMediaActionTypes:(NSArray<NSString *> *)mediaAc
378
379
remoteCommandCenter.skipBackwardCommand .enabled =
379
380
[mediaActionTypes containsObject: kMediaSkipBackward ];
380
381
if (skipIntervalNumber) {
381
- remoteCommandCenter.skipForwardCommand .preferredIntervals = @[skipIntervalNumber];
382
- remoteCommandCenter.skipBackwardCommand .preferredIntervals =@[ skipIntervalNumber];
382
+ remoteCommandCenter.skipForwardCommand .preferredIntervals = @[ skipIntervalNumber ];
383
+ remoteCommandCenter.skipBackwardCommand .preferredIntervals = @[ skipIntervalNumber ];
383
384
}
384
385
}
385
-
386
+
386
387
- (MPRemoteCommandHandlerStatus)handleTogglePlayPauseCommand :
387
388
(MPRemoteCommandEvent *)remoteCommandEvent {
388
389
[_channel invokeMethod: kOnMediaEventCallback arguments: @{kMediaEventType : kMediaPlayPause }];
@@ -426,17 +427,20 @@ - (MPRemoteCommandHandlerStatus)handleChangePlaybackPositionCommand:
426
427
(MPChangePlaybackPositionCommandEvent *)changePlaybackPositionCommandEvent {
427
428
NSTimeInterval positionSeconds = changePlaybackPositionCommandEvent.positionTime ;
428
429
[_channel invokeMethod: kOnMediaEventCallback
429
- arguments: @{kMediaEventType : kMediaSeekTo ,
430
- kMediaSeekToPositionSeconds :@(positionSeconds)
431
- }];
430
+ arguments: @{
431
+ kMediaEventType : kMediaSeekTo ,
432
+ kMediaSeekToPositionSeconds : @(positionSeconds)
433
+ }];
432
434
return MPRemoteCommandHandlerStatusSuccess;
433
435
}
434
436
435
437
- (MPRemoteCommandHandlerStatus)handleSkipForwardCommand :
436
438
(MPSkipIntervalCommandEvent *)skipIntervalCommandEvent {
437
439
[_channel invokeMethod: kOnMediaEventCallback
438
- arguments: @{kMediaEventType : kMediaSkipForward ,
439
- kMediaSkipIntervalSeconds :@(skipIntervalCommandEvent.interval )}];
440
+ arguments: @{
441
+ kMediaEventType : kMediaSkipForward ,
442
+ kMediaSkipIntervalSeconds : @(skipIntervalCommandEvent.interval )
443
+ }];
440
444
return MPRemoteCommandHandlerStatusSuccess;
441
445
}
442
446
@@ -448,36 +452,36 @@ - (MPRemoteCommandHandlerStatus)handleSkipBackwardCommand:
448
452
449
453
#pragma mark - MPNowPlayingInfoCenter
450
454
451
- - (void ) updateNowPlayingInfoFromPlaybackState : (NSDictionary *) playbackState {
455
+ - (void )updateNowPlayingInfoFromPlaybackState : (NSDictionary *)playbackState {
452
456
bool isPlaying = [playbackState[kPlaybackIsPlaying ] boolValue ];
453
457
_nowPlayingInfo[MPNowPlayingInfoPropertyPlaybackRate] = isPlaying ? @(1.0 ) : @(0.0 );
454
458
_nowPlayingInfo[MPNowPlayingInfoPropertyElapsedPlaybackTime] =
455
459
playbackState[kPlaybackPositionSeconds ];
456
-
460
+
457
461
MPNowPlayingInfoCenter.defaultCenter .nowPlayingInfo = _nowPlayingInfo;
458
462
}
459
463
460
- - (void ) updateNowPlayingInfoFromMetadata : (NSDictionary *) metadata {
464
+ - (void )updateNowPlayingInfoFromMetadata : (NSDictionary *)metadata {
461
465
_nowPlayingInfo[MPMediaItemPropertyPersistentID] = metadata[kMetadataId ];
462
466
_nowPlayingInfo[MPMediaItemPropertyTitle] = metadata[kMetadataTitle ];
463
467
_nowPlayingInfo[MPMediaItemPropertyArtist] = metadata[kMetadataArtist ];
464
468
_nowPlayingInfo[MPMediaItemPropertyAlbumTitle] = metadata[kMetadataAlbum ];
465
469
_nowPlayingInfo[MPMediaItemPropertyGenre] = metadata[kMetadataGenre ];
466
470
_nowPlayingInfo[MPMediaItemPropertyPlaybackDuration] = metadata[kMetadataDurationSeconds ];
467
-
471
+
468
472
if (metadata[kMetadataArtBytes ]) {
469
473
FlutterStandardTypedData *flutterData = metadata[kMetadataArtBytes ];
470
474
NSData *data = [flutterData data ];
471
475
UIImage *image = [UIImage imageWithData: data];
472
476
_nowPlayingInfo[MPMediaItemPropertyArtwork] =
473
477
[[MPMediaItemArtwork alloc ] initWithBoundsSize: CGSizeMake (200.0 , 200.0 )
474
- requestHandler: ^UIImage *(CGSize size) {
475
- return image;
476
- }];
478
+ requestHandler: ^UIImage *(CGSize size) {
479
+ return image;
480
+ }];
477
481
} else {
478
482
_nowPlayingInfo[MPMediaItemPropertyArtwork] = nil ;
479
483
}
480
-
484
+
481
485
MPNowPlayingInfoCenter.defaultCenter .nowPlayingInfo = _nowPlayingInfo;
482
486
}
483
487
0 commit comments