我开始了一个来自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,所以这没有任何帮助。