我開始了一個來自broadcastreceiver的活動,它打開屏幕並關閉鎖屏(通過使用windowmanager標誌)。這部分按計劃進行,活動開始。在onCreate中,我初始化一個YouTubePlayerView並開始播放某個YouTube視頻。這在我的Galaxy S2上按照計劃工作,但在我的Nexus 7和Galaxy Note 2上,YouTube視頻未啓動,並在YouTubePlayerView中顯示「無效請求」消息。使用Android YouTube API的請求無效
現在,我想到了這一點,並知道這個API可能會導致一些奇怪的行爲。我想出了選項,畫面上是沒有充分的,這導致了視頻無法加載,我用這個來檢查,如果在調用初始化對YouTubePlayerView之前的屏幕是在:
PowerManager pm = (PowerManager) getSystemService(Context.POWER_SERVICE);
ScreenOn = pm.isScreenOn();
if(ScreenOn){
playerView.initialize(DEVELOPER_KEY, this);
}else{
Toast.makeText(this, "SCREEN ON LATE", Toast.LENGTH_LONG).show();
Handler handler = new Handler();
handler.postDelayed(new Runnable() {
public void run() {
myHandler.post(updateRunnable);
}
}, 2000);
}
因此,如果屏幕未打開,我等待2秒鐘,然後再次嘗試初始化YouTubePlayerView。我省去了myHandler中的代碼,因爲之後調用initialize就可以工作。
由於某些原因,它仍然給我「無效請求」消息。我可以看到初始化發生,但然後一切都停止並彈出相同的消息。 LogCat不顯示任何內容,沒有錯誤或奇怪的行爲。我在我的S2上試過了,它只是在沒有任何問題的情況下開始播放視頻。但在Note 7和Note 2上,問題仍然存在。
我以前用過YouTube API,我從來沒有遇到過這樣的問題。
編輯:onError讓我回來只是INTERNAL_ERROR,所以這沒有任何幫助。