5

사용자의 iPhone 뮤직 라이브러리에서 음악을 재생하는 음악 앱을 디자인 중이며 어떤 오디오 플레이어가 AVAudioPlayer, AVPlayer 또는 MPMusicPlayer에 적합한 오디오 플레이어인지 파악하는 데 문제가 있습니다. iPhone - 내 앱에 맞는 오디오 플레이어는 무엇입니까?

  • 이 때 응용 프로그램 이동 응용 프로그램 음악을 계속 재생 장치/시스템 볼륨에서
  • 제어 응용 프로그램 음악 볼륨을 개별적으로 아이폰의 음악 라이브러리에서

    • 음악 재생 :

      내 응용 프로그램은 다음과 같은 작업을 수행 할 필요가있다 배경

    • 캐치 이벤트 때 노래 다음 곡을 변경 또는 내 연구에서

    완료 위에서 언급 한 세 가지 오디오 플레이어가 내 앱에 필요한 작업 중 일부를 수행하는 것처럼 보이지만 그 중 일부는 모든 작업을 수행하지 않습니다. AVPlayer는 볼륨이 장치/시스템 볼륨에 의존한다는 점을 제외하면 가장 가까운 것 같습니다.

    누구든지 권장 사항이나 해결 방법이 있습니까? 나는이 문제에 대해 꽤 오랫동안 두뇌를 앓아 왔기 때문에 어떤 도움이라도 인정 될 것입니다.

  • 답변

    1

    편집

    MPMusicPlayerController 클래스는 실제로 + applicationMusicPlayer를 통해 그것의 인스턴스를 가져올 때 배경 오디오 재생을 지원하지 않습니다. 가장 좋은 방법은 단순히 MPMusicPlayer를 사용하여 iPod 음악 라이브러리를 쿼리하는 것입니다. 사용자가 노래를 선택하면 그 결과로 MPMediaItem에 자산 URL을 쿼리하고 AVPlayer의 +playerWithURL으로 입력하여 재생 매개 변수를 완벽하게 제어 할 수 있습니다.

    -

    내가 MPMusicPlayerController를 추천 할 것입니다.

    1. MPMusicPlayerController는 iTunes 라이브러리에서 오디오 파일을 재생하는 하위 수준의 세부 사항을 처리합니다.
    2. 클래스 메서드 -applicationMusicPlayer을 사용하여 iPod singleton의 로컬 복사본을 가져올 수 있습니다. 거기에서 응용 프로그램에 대한 volume 속성을 설정하여 볼륨을 제어 할 수 있습니다.
    3. 나는 가정 것이다 MPMusicPlayerController 이미 내장 배경 오디오 지원한다. 그렇지 않은 경우, 당신은 당신이 설정 개체 당신이 선택할 수
    4. (http://www.sagorin.org/2011/11/29/ios-playing-audio-in-background-audio/에서 Playing background audio 참조) 작동하도록 앱의 오디오 세션 컨텍스트를 변경할 수 있습니다 애플리케이션 별 MPMusicPlayerController 개체의 KVO 옵저버입니다. 이렇게하면 nowPlayingItem 속성이 변경 될 때마다 알림을받을 수 있습니다.

    이 높은 수준의 설명으로 충분합니다. 더 자세한 설명이 필요하면 알려주십시오.

    +0

    사과 모델의 AddMusic 샘플 코드 – amergin

    +0

    MPMusicPlayer의 appmusicplayer 메소드는 앱이 배경으로 이동하면 오디오를 지원하지 않지만 예를 들어 AVPlayer를 사용하고있는 링크에서 오디오를 지원하지 않으므로 백그라운드 오디오 세션이 appmusicplayer와 호환되는지 확신하지 못합니다. 제안? – Matt

    +0

    안녕하세요. 저에 대한 문서를 놓친 것에 대해 사과드립니다.그 다음으로해야 할 일은 MPMusicPlayer를 사용하여 iPod 라이브러리에 액세스하고 쿼리하는 것입니다. 사용자가 노래를 선택하면 'MPMediaItem' 클래스의'MPMediaItemPropertyAssetURL' 속성을 통해 노래의 URL을 가져 와서 해당 URL을 AVPlayer의 '+ playerWithURL' 메소드에 전달할 수 있습니다. 거기에서 AVPlayer를 사용하여 실제로 노래를 재생합니다. iPod 라이브러리에 계속 액세스하면서 재생을 세밀하게 제어 할 수 있습니다. –

    관련 문제