2012-09-08 4 views
3

헤드폰 버튼과 같은 원격 제어 이벤트 수신을위한 작동 예제가 표시된 모노 터치 용 작동 예제가 있는지 알고 싶습니다.모노 터치 원격 제어 이벤트가 작동하지 않습니다.

저는 하나의 뷰 아이폰 앱을 구현했으며, BecomeFirstResponder라고도하는 CanBecomeFirstResponder와 UIApplication.SharedApplication.BeginReceivingRemoteControlEvents()를 구현했지만 어떤 이벤트도받지 못했습니다.

다음은 내 SingleViewController 코드입니다.

public partial class SingleViewViewController : UIViewController 
{ 
    public SingleViewViewController() : base ("SingleViewViewController", null) 
    { 
    } 

    public override void DidReceiveMemoryWarning() 
    { 
     // Releases the view if it doesn't have a superview. 
     base.DidReceiveMemoryWarning(); 

     // Release any cached data, images, etc that aren't in use. 
    } 

    public override void ViewDidLoad() 
    { 
     base.ViewDidLoad(); 

     // Perform any additional setup after loading the view, typically from a nib. 
     AVAudioSession audioSession = AVAudioSession.SharedInstance(); 
     NSError error; 
     audioSession.SetCategory(AVAudioSession.CategoryPlayback, out error); 
     audioSession.SetActive(true,out error); 

     this.BecomeFirstResponder(); 
     UIApplication.SharedApplication.BeginReceivingRemoteControlEvents(); 
    } 

    public override void ViewDidUnload() 
    { 
     base.ViewDidUnload(); 

     // Clear any references to subviews of the main view in order to 
     // allow the Garbage Collector to collect them sooner. 
     // 
     // e.g. myOutlet.Dispose(); myOutlet = null; 

     ReleaseDesignerOutlets(); 
    } 

    public override bool ShouldAutorotateToInterfaceOrientation (UIInterfaceOrientation toInterfaceOrientation) 
    { 
     // Return true for supported orientations 
     return (toInterfaceOrientation != UIInterfaceOrientation.PortraitUpsideDown); 
    } 

    public override bool CanBecomeFirstResponder { 
     get { 
      return true; 
     } 
    } 
    public override bool CanResignFirstResponder { 
     get { 
      return false; 
     } 
    } 

    public override void RemoteControlReceived (UIEvent theEvent) 
    { 
     base.RemoteControlReceived (theEvent); 
    } 
} 

답변

1

나는 약간의 시간을 보냈다. 나는 너에게 답을 줄 수도 있다고 생각한다. 내 첫 번째 잘못된 가정은 리모콘 (헤드폰)의 볼륨 조절기가 등록되지만 작동하지 않는다는 것입니다.

시행 착오를 제외하고는 다음을 확인하지 못했지만 AVAudioPlayer를 시작하거나 AVAudioSession을 시작할 때 뭔가를 재생해야합니다. 무언가를하지 않으면 재생/정지 이벤트가 처리되는 뮤직 앱으로 전달됩니다. 당신은 GitHub의에서 이러한 샘플의 27 장을 보면 당신의 코드에서

는,베이스에 호출 후있는 viewDidLoad 메소드에서, 난 당신이 오디오와 핸들을 재생하는 예를 볼 수 있습니다

AVAudioPlayer player = new AVAudioPlayer(new NSUrl("Music/test.m4a", false), null); 
player.PrepareToPlay(); 
player.Play(); 

추가 원격 제어 이벤트

https://github.com/mattneub/Programming-iOS-Book-Examples

내가 플레이어 재생없이 작업 원격 제어 이벤트를 얻을 수 없습니다, 당신의 예를 Obj-C 샘플을 많이 일치하지만 난 그게 하나 엑스 코드에서 작동 할 수 없었다.

희망이 도움이됩니다.

관련 문제