In my application, playback is controlled from control center. When playback is going on in AVPlayer(At this time playback controls are working fine from control center), I am loading a webview with other streaming URL.
Once streaming is done again I am starting playback from AVPlayer. After this, Playback controls are greyed out in control center.
I am using [MPNowPlayingInfoCenter defaultCenter].nowPlayingInfo
to enable playback control in control center.
What would be the problem?
Finally I solved this problem by loading the mp3 url using AVplayer instead of loading it in UIWebview. Current playback time, total time can be retrieved from AVPlayer and also it is possible to seek the playback using slider.
Google brought me here because I was having an issue with the command center when using AdMob video ads, and a comment on the OP referenced AdMob. Posting here for anyone else also having these issues.
AdMob video ads on iOS seem to utilize the
MPRemoteCommandCenter
for whatever reason. This may interfere with your app's usage of the command center. Here's what I came up with as a potential workaround to this: https://gist.github.com/ekilah/e74683291d3e7fafb947The "gist" of the workaround is to reset all of the
sharedCommandCenter
s listeners and theMPNowPlayingInfoCenter
's info dictionary after an ad from AdMob is fetched and after it's played. The way the workaround goes about resetting all of the commands is less than pretty, but this is what I came up with. Maybe someone has a better method?This approach may also help the OP. Resetting things between different usages may be a solution.
I ran into this problem as well working with an
AVPlayer
instance. You can useMPRemoteCommandCenter
to set up controls on the lock screen and command center.previousTapped:
,playAudio
,pauseAudio
, andnextTapped
are all methods in my view controller that call respective methods to control myAVPlayer
instance. To enable an action, you must explicitly setenabled
toYES
and provide a command with atarget
andselector
.If you need to disable a specific action, you must explicitly set the
enabled
property toNO
in addition to adding a target.If you do not set
enabled
for the command, the item will not appear at all on the lock screen or in command center.In addition, remember to set your app up for background playback (add the
UIBackgroundModes
audio
value to your Info.plist file.), set the player active, and check for errors: