2012-11-14 21 views
5

Tôi có một ứng dụng mà có cài đặt sau:MPMoviePlayerViewController điều khiển phát lại màn hình khóa không làm việc

URMoviePlayerViewController kéo dài MPMoviePlayerViewController

  • có phương pháp remoteControlReceivedWithEvent: (UIEvent *) sự kiện thực hiện, cũng như:

    (void)viewDidLoad 
    { 
        [super viewDidLoad];  
        [[UIApplication sharedApplication] beginReceivingRemoteControlEvents]; 
        [self becomeFirstResponder]; 
    } 
    
    (BOOL) canBecomeFirstResponder 
    { 
        return YES; 
    } 
    

URPlayerViewController có URMoviePlayerViewController như một tài sản

@property (nonatomic, strong) URMoviePlayerViewController *player; 
  • máy nghe nhạc được khởi tạo khi một cuộc gọi để chơi một clip âm thanh được thực hiện; nếu nó đã được khởi tạo, nó không khởi tạo lại trình phát

  • URPlayerViewController có chế độ xem là trình phát tùy chỉnh có phát/tạm dừng, điều khiển tiếp theo/trước đó được khởi tạo và thêm vào chế độ xem phụ trong phương thức viewDidLoad

URAppDelegate có URPlayerViewController như một tài sản

@property (nonatomic, strong) URPlayerViewController *playerViewController; 
  • playerViewController được khởi tạo trong didFinishLaunchingWithOptions ứng dụng

  • xem playerViewController được thêm vào cửa sổ - vì vậy mà người chơi tùy chỉnh có thể nhìn thấy trong suốt ứng dụng

Vấn đề:

Tất cả những gì thường làm việc tốt. Giờ đây, sau đó trên màn hình khóa, các nút điều khiển phát lại (phát/tạm dừng/tiếp theo/trước đó) ngừng hoạt động. remoteControlReceivedWithEvent không bao giờ được gọi. Tôi đã không thể tái tạo điều này một cách nhất quán.

Bất kỳ lời khuyên hay ý tưởng nào về việc gỡ lỗi vấn đề này xung quanh phát lại sẽ rất tuyệt vì tôi không thể tái tạo một cách nhất quán vấn đề này. Cảm ơn!

Trả lời

1

Tôi nghĩ rằng bạn đang thiếu dưới đây phương pháp này, chỉ cần thêm nó vào mã hiện tại của bạn và chấp nhận câu trả lời nếu nó sẽ làm việc:

Di beginReceivingRemoteControlEvents từ viewDidLoad và đặt nó trong viewDidAppear:

- (void)viewDidAppear:(BOOL)animated { 
[super viewDidAppear:animated]; 
[[UIApplication sharedApplication] beginReceivingRemoteControlEvents]; 
[self becomeFirstResponder]; 

}

- (void)viewWillDisappear:(BOOL)animated { 
[super viewWillDisappear:animated]; 
[[UIApplication sharedApplication] endReceivingRemoteControlEvents]; 
[self resignFirstResponder]; 

}

+0

tôi đã cố gắng thay đổi này earli er (tuy nhiên tôi đã sử dụng viewDidDisappear thay vì viewWillDisappear). Vẫn không có may mắn. Tôi vẫn thấy các điều khiển phát lại ngừng hoạt động một lần trong một thời gian. –

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