2013-07-05 2 views
0

AVPlayer으로 뮤직 플레이어 애플리케이션을 개발 중입니다.블루투스를 사용하는 iOS AVPlayer 컨트롤

이제는 재생, 일시 중지, 다음 및 뒤로와 같은 작업에 대해 Bluetooth 장치로 플레이어를 제어하고 싶습니다.

가능한 해결책은 무엇입니까? 원격 이벤트를 재생하는의 ViewController를 제어/

답변

1

오디오가 첫 번째로 반응이 너무

- (void)viewDidAppear:(BOOL)animated 
{ 

[super viewDidAppear:animated]; 
//Make sure the system follows our playback status 
[[AVAudioSession sharedInstance] setDelegate: self]; 
[[AVAudioSession sharedInstance] setCategory:AVAudioSessionCategoryPlayback error:nil]; 
[[AVAudioSession sharedInstance] setActive: YES error: nil]; 

[[UIApplication sharedApplication] beginReceivingRemoteControlEvents]; 
[self becomeFirstResponder]; 
} 

그런 다음 당신이 그렇게 코드를 추가 이벤트를 제어해야 viewDidAppear

이 추가로 가지고 있지만 동일한의 ViewController에 제어 거기 AppDelegate에되는 최적의 장소로 토론 그러나 이것은 단지 얻을 것이다 있지만 당신은 시작 :

- (void)remoteControlReceivedWithEvent:(UIEvent *)event { 
//if it is a remote control event handle it correctly 
if (event.type == UIEventTypeRemoteControl) { 
    if (event.subtype == UIEventSubtypeRemoteControlPlay) { 
     [self play]; 
    } else if (event.subtype == UIEventSubtypeRemoteControlPause) { 
     [self pause]; 
    } else if (event.subtype == UIEventSubtypeRemoteControlTogglePlayPause) { 
     [self togglePlayPause]; 
    } else if (event.subtype == UIEventSubtypeRemoteControlNextTrack) { 
      [self next]; 
     } 
    } else if (event.subtype == UIEventSubtypeRemoteControlPreviousTrack) { 

      [self previous]; 
    } 
} 

그래서 플레이 일시 정지 등의 방법 당신이의 ViewController,,745에 오디오를 제어 할 때 사용하는 방법이 있습니다이제는 오디오를 제어하는 ​​VC가 보이기 만하면 공유 인스턴스 인 mediaQueue/playerController가 있거나 AppDelegate 또는 심지어 UIWindow의 하위 클래스에서 수행됩니다. 하지만이게 도움이되기를 바랍니다. 문제가 있으면 알려주세요

+0

VC에 대한 부분을 좀 더 자세히 설명해 주시겠습니까? VC가 첫 번째 응답자가 될 수 없다고 가정합니다. 첫 번째 응답자는 무엇입니까? AppDelegate는 항상 응답자가 될 수 있습니까? 기본적으로 앱이 화면 밖에있을 때도 작동하려면 AppDelegate에서 AVAudioPlayer를 직접 제어해야하며 'viewDidAppear' 메소드의 코드를'applicationDidFinishLaunching'으로 이동해야하나요? 감사. – Tenfour04

+0

예 AppDelegate에서 실행하여 applicationDidFinishLaunching, applicationDidBecomeActive 및 applicationWillTerminate에서 firstResponder를 선택하여 사임하고 재생/일시 중지 메서드를 VC – gav

+0

Cool에 호출하여 해결했습니다. 감사! – Tenfour04

관련 문제