Ich versuche, Text () den aktuellen Spielsong auf meinem Gerät (SongTitle) zu reflektieren, und ich kann scheinbar schockierend eine Antwort finden
Dies ist meine Haupthandlerklasse < /p> < Br />let musicPlayer = MPMusicPlayerController.systemMusicPlayer
var songTitle = musicPlayer.nowPlayingItem?.title ?? "No song playing"
class MusicMonitor: ObservableObject {
private let player = MPMusicPlayerController.systemMusicPlayer
init() {
NotificationCenter.default.addObserver(
forName: .MPMusicPlayerControllerNowPlayingItemDidChange,
object: player,
queue: OperationQueue.main) { (note) in
self.updateCurrentSong()
printTest(inp:("Song changed " + (self.player.nowPlayingItem?.title ?? "No song playing")))
}
player.beginGeneratingPlaybackNotifications()
updateCurrentSong() // Get initial song
}
private func updateCurrentSong() {
if let nowPlayingItem = player.nowPlayingItem {
songTitle = nowPlayingItem.title ?? "No song playing" // Your next song logic here
}
}
deinit {
player.endGeneratingPlaybackNotifications()
}
}
< /code>
Dies ist hauptsächlich Code, den ich aus anderen Foren zusammengesetzt habe, aber es scheint überhaupt nicht zu aktualisieren, wenn sich der Song ändert. Es macht den Song anfangs richtig, wenn Sie die App öffnen, aber niemals aktualisiert.
Ich bin auch bewusst Gehen Sie zurück und räumen Sie es auf, sobald ich vertraut bin und ich weiß, dass ich nicht alles brechen kann. Ich habe auch eine Methode ausprobiert, um die Dauer des Songs zu erhalten, aber es bricht, wenn Sie das Lied überspringen. Es funktioniert manuell mit einem Knopfdruck, aber es tut nicht das, was ich tun muss, da es im Idealfall keine Benutzerinteraktion beinhaltet. < /P>
Jede Hilfe wäre stark geschätzt!
Aktualisieren Sie einen Var mit einem Song -Titel, wenn das Lied endet? ⇐ IOS
-
- Similar Topics
- Replies
- Views
- Last post
-
-
Die Unity -Episode endet nicht, auch wenn das Ziel oder die Wand berührt wird
by Anonymous » » in C# - 0 Replies
- 15 Views
-
Last post by Anonymous
-