2013-12-11 22 views
30

Tôi đang cố gắng nhận thông tin về bài hát đang phát trong ứng dụng Spotify iOS. Kịch bản như sau: Mở ứng dụng Spotify iOS, bắt đầu phát một bài hát. Đặt ứng dụng ở chế độ nền và mở ứng dụng iOS của tôi. Có cách nào để tôi có thể phát bài hát trên Spotify, trong ứng dụng iOS của tôi không?Tải bài hát đang phát từ ứng dụng Spotify iOS

Tôi đã thử bằng cách sử dụng tài sản nowPlayingItem như đã mô tả trong bài viết này, nhưng nó đã không làm việc: On iPhone: Find out what song is currently playing? (in the iPod music player)

Tôi đã thử bằng cách sử dụng [MPNowPlayingInfoCenter defaultCenter] .nowPlayingInfo như đã mô tả trong bài viết này, nhưng nó didn' t work: Is there a way to access the currently played track while the iPhone is connected to an accessory?

Tôi đã thấy cùng một câu hỏi được hỏi trong bài đăng này trên diễn đàn nhà phát triển táo: https://devforums.apple.com/message/903640#903640.

Có ai gặp sự cố này không? Bạn đã tìm thấy một giải pháp khả thi chưa?

Xin cảm ơn,

+0

bản sao có thể có của [Xác định bài hát đang được phát trên iPhone bởi ứng dụng của bên thứ ba] (http://stackoverflow.com/questions/8542854/determine-song-being-played-on-iphone-by-third-party- ứng dụng) – feco

+0

Tôi không tin rằng đây là một bản sao vì câu hỏi đó là yêu cầu một giải pháp chung, vì vậy bất kỳ câu trả lời nào cho câu hỏi đó đều không thể tính đến bất kỳ API cụ thể nào của Spotify. –

+0

Điều này có thể giúp bạn: [Nhận dữ liệu meta được hiển thị trong MPNowPlayingInfoCenter's nowPlayingInfo] (http://stackoverflow.com/questions/20534939/get-meta-data-displayed-in-mpnowplayinginfocenters-nowplayinginfolock-screen-a) –

Trả lời

1

Nếu tôi không sai, Apple không cho phép chương trình chia sẻ dữ liệu (vì lý do bảo mật). Vì vậy, có lẽ đó là vấn đề.

+0

Bạn nên cung cấp nơi bạn đã lấy thông tin đó. – Buzinas

4

Dưới đây là một giải pháp trong Swift 3:

let player = MPMusicPlayerController.systemMusicPlayer() 
if let mediaItem = player.nowPlayingItem { 
    let title: String = mediaItem.value(forProperty: MPMediaItemPropertyTitle) as! String 
    let albumTitle: String = mediaItem.value(forProperty: MPMediaItemPropertyAlbumTitle) as! String 
    let artist: String = mediaItem.value(forProperty: MPMediaItemPropertyArtist) as! String 

    print("\(title) on \(albumTitle) by \(artist)") 
} 

Lưu ý rằng bắt đầu từ iOS 10, bạn phải thiết lập một chuỗi mô tả cho NSAppleMusicUsageDescription trong Info.plist để có được quyền truy cập vào âm nhạc của người dùng.

mediaItem sẽ là phiên bản MPMediaItem nếu có nội dung nào đó đang phát. Bạn có thể truy cập các thuộc tính của mục phương tiện bằng phương thức value(forProperty:). Phương thức này có một thuộc tính. Các thuộc tính được định nghĩa trong tài liệu cho `MPMediaItem dưới tiêu đề" Khóa thuộc tính mục đa phương tiện chung ".

+1

Tính năng này chỉ hoạt động với trình phát iOS. Với các ứng dụng của bên thứ ba như Spotify, 'mediaItem' là' nil'. – Rob

+0

Tôi cũng đang tìm kiếm điều này, có cách nào để truy cập các ứng dụng của bên thứ ba hiện đang phát thông tin không? – GarySabo

Các vấn đề liên quan