2011-10-13 27 views
10

Tôi có một phiên bản MPMoviePlayerController đang được sử dụng để hiển thị một số video phát trực tiếp trên ứng dụng iPhone. Điều này làm việc tốt, tuy nhiên tôi muốn loại bỏ tất cả chức năng AirPlay.Tắt AirPlay với MPMoviePlayerController

Để chắc chắn, tôi đặc biệt disable AirPlay như vậy:

if([self.moviePlayerController respondsToSelector:@selector(setAllowsAirPlay:)]) { 
    self.moviePlayerController.allowsAirPlay = NO; 
} 

Tuy nhiên, ngay cả với mã này, tôi vẫn thấy biểu tượng AirPlay trên các điều khiển video. Nếu tôi chọn tùy chọn này và chọn AppleTV của tôi, chỉ âm thanh được gửi qua AirPlay - video tiếp tục phát trong ứng dụng. Nếu tôi đặt allowsAirPlay thành YES, cả video & âm thanh sẽ được gửi qua AirPlay.

Có ai biết tại sao điều này xảy ra không? Đây có phải là một tính năng của hệ điều hành, cho phép cho phép âm thanh được gửi qua AirPlay không?

+0

bạn đã cố gắng đặt 'useApplicationAudioSession = NO;'? –

+0

Tôi có bây giờ - dường như không tạo ra bất kỳ sự khác biệt nào tôi sợ. –

+0

Bạn đã đặt allowAirPlay trước khi đặt URL nội dung của trình phát chưa? – jbat100

Trả lời

4

Hóa ra biểu tượng AirPlay vẫn hiển thị (và vẫn hiển thị) để âm thanh có thể được định tuyến đến bất kỳ thiết bị phù hợp nào, ví dụ: tai nghe Bluetooth. Cố gắng ẩn biểu tượng được coi là thực hành không tốt.

+0

Câu hỏi khá cũ; nhưng có cơ hội nào bạn có liên kết đến tài liệu của Apple hỗ trợ điều này không? – Craig

+1

Xin lỗi, không - tôi thực sự đã nhận được câu trả lời từ một kỹ sư của Apple tại một trong các buổi nói chuyện kỹ thuật của họ. Nếu bạn nghĩ về nó một cách hợp lý thì nó có ý nghĩa. Những người muốn sử dụng tai nghe hoặc loa Bluetooth nên luôn có thể sử dụng chúng, vì chúng có thể khó nghe ... –

+0

Cảm ơn bạn. Tôi nghĩ rằng có ý nghĩa, chỉ có mối quan tâm về cấp phép nội dung. – Craig

2

Tôi biết đó là một câu hỏi cũ nhưng vẫn có thể điều này sẽ giúp người khác.
Apple có api sau đây để ẩn nút tuyến đường (AirPlay)

@property (nonatomic) BOOL showsRouteButton NS_AVAILABLE_IOS(4_2); // Default is YES. 

Hope this helps bất cứ ai.

0

@Philip K, gợi ý của bạn gần như đã giải quyết vấn đề này cho tôi, gỡ lỗi một số mã bốn tuổi. showsRouteButton không phải là một tài sản trên MPMoviePlayerController, và tôi cố gắng thiết lập:

myMPMoviePlayer.allowsAirPlay = NO; 

Nhưng điều này đã không làm gì ...

Và chúng tôi đang sử dụng điều khiển tùy chỉnh cho máy nghe nhạc video của chúng tôi, và thấy rằng các nút đường là một phần của MPVolumeView và mẹo của bạn áp dụng ở đó:

MPVolumeView * vView = [[MPVolumeView alloc] initWithFrame: bounds]; 
vView.showsRouteButton = NO; 

Bingo! Cảm ơn.

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