ラジオ アプリを作成したいので、Apple Radio がネイティブの音楽アプリで行うように、コントロール センターで一時停止ボタンの代わりに停止ボタンを使用したいと思います。
RadioPlayer クラスで行ったことは次のとおりです。
private var shoutcastStream = NSURL(string: "http://shoutcast.com:PORT/;stream.mp3")
var playerItem:AVPlayerItem?
var player:AVPlayer?
let commandCenter = MPRemoteCommandCenter.sharedCommandCenter()
override init() {
super.init()
do {
// Allow background audio
try AVAudioSession.sharedInstance().setCategory(AVAudioSessionCategoryPlayback)
do {
try AVAudioSession.sharedInstance().setActive(true)
} catch _ as NSError {
}
// Disable Next, Prev and Pause
commandCenter.pauseCommand.enabled = false
commandCenter.nextTrackCommand.enabled = false
commandCenter.previousTrackCommand.enabled = false
// Enable Play
commandCenter.playCommand.enabled = true
commandCenter.playCommand.addTarget(self, action: #selector(RadioPlayer.play))
// Enable Stop
commandCenter.stopCommand.enabled = true
commandCenter.stopCommand.addTarget(self, action: #selector(RadioPlayer.stop))
} catch _ as NSError {
}
}
現在は問題なく動作していますが、停止ボタンが表示されません。代わりに、一時停止ボタンがありますが、これはラジオ プレーヤーには意味がありません (笑)。
上記の場合、コントロール センターに一時停止ボタンが表示されていても、一時停止ボタンを押しても何も起こらないことに注意してくださいstopCommand
。
問題は、停止ボタンをどのように使用するかです。ありがとうございました。