尝试显示全屏HTML5视频时出现BadTokenException

时间:2014-02-11 08:39:09

标签: android

我正在尝试允许WebView中的YouTube视频以全屏显示。问题是,在视频显示后大约一秒钟,应用程序崩溃并出现BadTokenException。

我从这里使用代码几行代码: Android WebView with an embedded youtube video, full screen button freezes video

我唯一改变的是让它与我的活动和观点相匹配。如果我注释掉设置内容视图的行,它运行正常(不显示视频)。

我也尝试过这里的代码: http://shashikawlp.wordpress.com/2013/06/25/play-html5-video-on-android-webview/

但我得到同样的问题。

这是调试器的堆栈:

ViewRootImpl.setView(View, WindowManager$LayoutParams, View) line: 661  
WindowManagerImpl.addView(View, ViewGroup$LayoutParams, CompatibilityInfoHolder, boolean) line: 326 
WindowManagerImpl.addView(View, ViewGroup$LayoutParams, CompatibilityInfoHolder) line: 224  
WindowManagerImpl$CompatModeWrapper.addView(View, ViewGroup$LayoutParams) line: 149 
HTML5VideoFullScreen$FullScreenMediaController(MediaController).show(int) line: 338 
HTML5VideoFullScreen$FullScreenMediaController(MediaController).show() line: 298    
HTML5VideoFullScreen$FullScreenMediaController.show() line: 374 
HTML5VideoFullScreen.onPrepared(MediaPlayer) line: 220  
MediaPlayer$EventHandler.handleMessage(Message) line: 2071  
MediaPlayer$EventHandler(Handler).dispatchMessage(Message) line: 99 

为什么FullScreenMediaController没有获得正确的窗口上下文来创建自己的任何想法,这似乎是问题的根源?

1 个答案:

答案 0 :(得分:0)

我明白了。 webview是一个寻呼机。以前的开发人员将应用程序上下文传递给寻呼机而不是活动上下文,我没有意识到。将其切换到活动上下文修复了问题。