如何解决Swift:在锁定屏幕上添加前进/后退 15 秒按钮
我有AVAudioPlayer
。我想在锁定屏幕上添加 15 秒倒带按钮,如下图所示:
但我在这张图片上有这样的结果:
我的代码:
var audioPlayer: AVAudioPlayer!
override func viewDidLoad() {
super.viewDidLoad()
try? AVAudioSession.sharedInstance().setCategory(AVAudioSessionCategoryPlayback)
try? AVAudioSession.sharedInstance().setActive(true)
UIApplication.shared.beginReceivingRemoteControlEvents()
...
audioPlayer = try AVAudioPlayer(contentsOf: soundURL!)
audioPlayer.delegate = self
audioPlayer.prepareToPlay()
play(sender:AnyObject.self as AnyObject)
restorePlayerCurrentTime()
}
override func remoteControlReceived(with event: UIEvent?) {
guard let event = event else {
print("no event\n")
return
}
guard event.type == UIEventType.remoteControl else {
print("received other event type\n")
return
}
switch event.subtype {
case UIEventSubtype.remoteControlBeginSeekingBackward:
audioPlayer.play()
case UIEventSubtype.remoteControlBeginSeekingForward:
audioPlayer.pause()
case UIEventSubtype.remoteControlPlay:
print("received remote play\n")
audioPlayer.play()
case UIEventSubtype.remoteControlPause:
print("received remote pause\n")
audioPlayer.pause()
/*case UIEventSubtype.remoteControlTogglePlayPause:
print("received toggle\n")*/
default:
print("received \(event.subtype) which we did not process\n")
}
}
如何解决?
播放和停止按钮工作正常,但倒带不起作用。
解决方法
我就是这样做的
import MediaPlayer
func setupMediaPlayerNotificationView() {
let commandCenter = MPRemoteCommandCenter.shared()
commandCenter.skipForwardCommand.addTarget { [weak self] event in
print("You Pressed skipForward")
return .success
}
commandCenter.skipBackwardCommand.addTarget { [weak self] event in
print("You Pressed skipBackward")
return .success
}
}
这将为您提供跳过按钮。
调用它
override func viewDidLoad() {
super.viewDidLoad()
self.setupMediaPlayerNotificationView()
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。