2011-10-13 54 views
10

我有一個MPMoviePlayerController的實例,用於在iPhone應用上顯示一些實時流式視頻。這工作正常,但我希望刪除所有AirPlay功能。使用MPMoviePlayerController禁用AirPlay

可以肯定的,我專門禁用的AirPlay像這樣:

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

然而,即使有這樣的代碼,我仍然看到在視頻控件中的AirPlay圖標。如果我選擇此選項,並選擇我的AppleTV,只有音頻通過AirPlay發送 - 視頻會繼續在應用程序中播放。如果我將allowsAirPlay設置爲YES,則兩個視頻&音頻都通過AirPlay發送。

有誰知道爲什麼會發生這種情況?這是OS的一項功能,允許通過AirPlay發送音頻嗎?

+0

你嘗試設置'useApplicationAudioSession = NO;'嗎? – 2011-10-24 16:40:44

+0

我現在 - 似乎沒有任何區別,我害怕。 –

+0

您是否在設置播放器的內容網址之前設置了allowAirPlay? – jbat100

回答

4

事實證明,AirPlay圖標仍然可見(並應保持可見),以便音頻可以路由到任何合適的設備,例如。一個藍牙耳機。試圖隱藏圖標被認爲是不好的做法。

+0

很老的問題;但是有沒有機會鏈接到支持這個的Apple文檔? – Craig

+1

對不起,沒有 - 我實際上從一位蘋果工程師的技術講座中得到了答案。如果你從邏輯上思考它是有道理的。那些想要使用藍牙耳機或揚聲器的人應該始終能夠使用它們,因爲它們可能很難聽到。 –

+0

謝謝。我認爲這很有道理,只關心內容許可。 – Craig

2

我知道它的一個老問題,但仍然可能這會幫助別人。
蘋果有下列API隱藏路線按鈕(AirPlay的)

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

希望這有助於任何人。

0

@Philip K,你的提示差不多爲我解決了這個問題,調試了一些四年前的代碼。 showsRouteButton不上的MPMoviePlayerController屬性,我試圖設置:

myMPMoviePlayer.allowsAirPlay = NO; 

但是這並沒有什麼...

我們使用自定義的控制我們的視頻播放器,並發現該路由按鈕是MPVolumeView的一部分,您的訣竅適用於此:

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

賓果!謝謝。

相關問題