5

Tôi đang thiết kế ứng dụng nhạc phát nhạc từ thư viện nhạc iPhone của người dùng và tôi đang gặp sự cố khi biết trình phát âm thanh nào là trình phát nhạc phù hợp để sử dụng cho nó (AVAudioPlayer, AVPlayer hoặc MPMusicPlayer).iPhone - Trình phát âm thanh phù hợp cho ứng dụng của tôi là gì?

Ứng dụng của tôi cần phải làm như sau:

  • Chơi nhạc từ thư viện nhạc iPhone
  • kiểm soát âm lượng nhạc ứng dụng riêng rẽ với khối lượng thiết bị/hệ thống
  • Tiếp tục để chơi nhạc ứng dụng khi ứng dụng di chuyển đến nền
  • Bắt sự kiện khi bài hát thay đổi thành bài hát tiếp theo hoặc kết thúc

Từ nghiên cứu của tôi có vẻ như mỗi một trong ba trình phát âm thanh được đề cập ở trên đều thực hiện MỘT SỐ công việc cần thiết cho ứng dụng của tôi, nhưng không ai trong số họ thực hiện TẤT CẢ chúng. AVPlayer dường như nhận được gần nhất, ngoại trừ khối lượng của nó phụ thuộc vào khối lượng thiết bị/hệ thống.

Có ai có bất kỳ đề xuất hoặc cách giải quyết nào để thực hiện việc này không? Tôi đã được bộ não của tôi trong thời gian này khá lâu vì vậy bất kỳ trợ giúp ở tất cả sẽ được đánh giá cao.

Trả lời

1

EDIT

Lớp MPMusicPlayerController không thực sự hỗ trợ chơi âm thanh nền khi nhận được một thể hiện của nó qua + applicationMusicPlayer. Tùy chọn tốt nhất, sau đó, chỉ đơn giản là sử dụng MPMusicPlayer để truy vấn thư viện nhạc iPod. Sau khi một bài hát được chọn bởi người dùng, kết quả là MPMediaItem có thể được truy vấn cho URL nội dung của nó và được đưa vào AV232's +playerWithURL, cho phép bạn kiểm soát đầy đủ các thông số phát lại.

-

Tôi muốn giới thiệu MPMusicPlayerController.

  1. MPMusicPlayerControllerĐánh giá chi tiết thấp về phát tệp âm thanh trong thư viện iTunes.
  2. Bạn có thể sử dụng phương thức lớp học -applicationMusicPlayer để lấy bản sao cục bộ của iPod singleton; từ đó, bạn có thể kiểm soát âm lượng của nó bằng cách đặt thuộc tính volume chỉ cho ứng dụng của bạn.
  3. Tôi sẽ giả MPMusicPlayerController có hỗ trợ âm thanh nền sẵn bên trong. Nếu không, bạn có thể thay đổi bối cảnh phiên âm thanh của ứng dụng của bạn để làm cho nó hoạt động (xem Playing background audio trong http://www.sagorin.org/2011/11/29/ios-playing-audio-in-background-audio/)
  4. Bạn có thể cài đặt bất kỳ đối tượng bạn chọn là người quan sát KVO của đối tượng MPMusicPlayerController dành riêng cho ứng dụng của bạn. Bằng cách này, bạn có thể được thông báo bất cứ khi nào thuộc tính nowPlayingItem bị thay đổi.

Hy vọng rằng mô tả cấp cao này sẽ đủ. Hãy cho tôi biết nếu bạn cần làm rõ thêm.

+0

và có thể kiểm tra mã mẫu AddMusic của Apple – amergin

+0

Tất cả âm thanh đều đúng nhưng phương pháp appmusicplayer của MPMusicPlayer không hỗ trợ âm thanh khi ứng dụng chuyển sang nền và trong liên kết bạn đã liệt kê làm ví dụ anh ấy đang sử dụng AVPlayer không chắc chắn phiên âm thanh nền sẽ hoạt động với appmusicplayer. Gợi ý? – Matt

+0

Xin chào Matt. Lời xin lỗi của tôi về việc thiếu tài liệu về điều đó.Điều tốt nhất tiếp theo để làm, sau đó, có thể sử dụng MPMusicPlayer để truy cập và truy vấn thư viện iPod. Khi người dùng đã chọn bài hát, bạn có thể lấy URL của bài hát thông qua thuộc tính 'MPMediaItemPropertyAssetURL' (từ lớp' MPMediaItem') và đưa URL đó vào phương thức '+ playerWithURL' của AVPlayer. Từ đó, bạn chỉ cần sử dụng AVPlayer để thực sự phát bài hát. Điều đó sẽ cung cấp cho bạn kiểm soát hạt mịn trong khi vẫn có quyền truy cập vào thư viện iPod. –

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