-1
私はそれが動作するようになったが、私が曲のタイトルを再生するように選択すると、その曲のタイトルは初めて表示されません。私はメディアピッカーに戻って、歌のタイトルを表示するために曲をもう一度選択する必要があります。最初に曲を選んだのはなぜですか?また、別の曲を選んで再生するときに、曲のタイトルを削除するにはどうすればよいですか?ありがとうございました!ここに私が持っているコードはあります:現在Swiftで再生中の曲のタイトルを表示するのに問題がありますか?
func mediaPicker(mediaPicker: MPMediaPickerController, didPickMediaItems mediaItemCollection: MPMediaItemCollection) {
if mediaItemCollection.items.count == 2{
mediaPicker.dismissViewControllerAnimated(true, completion: nil)
let aMediaItem = mediaItemCollection.items[0] as MPMediaItem
music = aMediaItem
NSLog("\(aMediaItem.title)selected")
let url: NSURL = (music.valueForProperty(MPMediaItemPropertyAssetURL) as? NSURL)!
do {
musicPlayer = try AVAudioPlayer(contentsOfURL: url)
} catch {
return
}
titleLabel2.text = music.title
titleLabel2 = SKLabelNode(fontNamed: "TimeBurner")
titleLabel2.fontColor = UIColor.whiteColor()
titleLabel2.zPosition = 40
titleLabel2.fontSize = 16
titleLabel2.position = CGPointMake(self.size.width/5.3, self.size.height/1.2)
addChild(titleLabel2)
let aMediaItem2 = mediaItemCollection.items[1] as MPMediaItem
music2 = aMediaItem2
NSLog("\(aMediaItem2.title)selected")
let url2: NSURL = (music2.valueForProperty(MPMediaItemPropertyAssetURL) as? NSURL)!
do {
musicPlayer2 = try AVAudioPlayer(contentsOfURL: url2)
} catch {
return
}
titleLabel.text = music2.title
titleLabel = SKLabelNode(fontNamed: "TimeBurner")
titleLabel.fontColor = UIColor.whiteColor()
titleLabel.zPosition = 40
titleLabel.fontSize = 16
titleLabel.position = CGPointMake(self.size.width/1.3, self.size.height/1.2)
addChild(self.titleLabel)
}
}
UIがメインスレッドに存在するため、より多くのコンテキストを伝えるのは難しいですが、メインスレッドにUI更新を明示的にディスパッチする必要があることがあります。これを行うには、 'dispatch_async(dispatch_get_main_queue()){//ここでUIアップデートを実行する}'でUIの変更に関する呼び出しをラップします。あなたがGrand Central Dispatchに精通していない場合は、[ここ](https://www.raywenderlich.com/79149/grand-central-dispatch-tutorial-swift-part-1)は素早いチュートリアルです – MikeG
私はそれを動作させましたdidMoveToViewのラベルを呼び出し、曲を選択した後にタイトルのテキストを表示することによって、 – coding22
@MikeGユーザーが別の曲を選択したときにラベルを削除する方法を知っていますか?今すぐ別の曲を選択すると、前の曲のタイトルと重なるだけです。 – coding22