我正在尝试使用WebView在我的活动中显示Flash内容.一切都运行得很好,但是当用户点击主页键将活动放入后台时,Flash内容会继续运行(声音继续播放等)
我注意到Android浏览器和Dolphin浏览器似乎都避免了这个问题,并且当浏览活动放到后台时正确暂停Flash内容.
理想情况下,我想要一个解决方案,如果活动正在完成,则完全杀死WebView,但是暂停它(基本上复制浏览器的默认行为)
这是一个简单的测试,我把它放在Kongregate上加载一个有一些背景音乐的游戏:
public class BrowserTest extends Activity {
private WebView mWebView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
mWebView = new WebView(this);
mWebView.getSettings().setJavaScriptEnabled(true);
mWebView.getSettings().setPluginsEnabled(true);
mWebView.loadUrl("http://m.kongregate.com/games/Jiggmin/the-game-of-disorientation-mobile");
setContentView(mWebView);
}
@Override
protected void onPause(){
super.onPause();
mWebView.pauseTimers();
if(isFinishing()){
mWebView.loadUrl("about:blank");
setContentView(new FrameLayout(this));
}
}
@Override
protected void onResume(){
super.onResume();
mWebView.resumeTimers();
}
}
Run Code Online (Sandbox Code Playgroud)
我看了一下股票浏览器的最新来源,似乎做了类似的事情(调用pauseTimers/resumeTimers),虽然我担心我一直在看的代码已经过时了,因为它调用的函数是don似乎不再存在了.
我确实通过使用更新计数器的简单JavaScript setInterval进行测试来验证对pauseTimers的调用是否正常.对于Window或View管理,我应该尝试一些其他明显的东西吗?
移动Flash播放器的文档说:
Flash Player还将自动暂停不在视图或前台应用程序中的SWF播放,例如在收到呼叫或警报响起时,以降低CPU利用率,电池使用率和内存使用率.
这似乎在股票浏览器和Dolphin浏览器中都很完美,但在我的应用程序中却没有.任何想法/解决方案将不胜感激!
更新:这是我们最终添加到我们的活动以使其工作的功能.我们在活动的onPause函数中使用"onPause",在activity的onResume函数中使用"onResume"调用它:
private void callHiddenWebViewMethod(String name){
if( mWebView != null ){
try {
Method method = WebView.class.getMethod(name);
method.invoke(mWebView);
} catch (NoSuchMethodException e) {
Log.error("No …Run Code Online (Sandbox Code Playgroud) 我想在webview中加载 .flv视频.
我从这个链接中获得了帮助,但问题是我无法在模拟器中查看视频.
这是我的代码:
package com.FlvTester;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
import android.app.Activity;
import android.os.Bundle;
import android.webkit.WebView;
import android.widget.FrameLayout;
public class FlvTester extends Activity {
WebView webView;
String htmlPre = "<!DOCTYPE html><html lang=\"en\"><head><meta charset=\"utf-8\"></head><body style='margin:0; pading:0; background-color: black;'>";
String htmlCode =
" <embed style='width:100%; height:100%' src='http://www.platipus.nl/flvplayer/download/1.0/FLVPlayer.swf?fullscreen=true&video=@VIDEO@' " +
" autoplay='true' " +
" quality='high' bgcolor='#000000' " +
" name='VideoPlayer' align='middle'" + // width='640' height='480'
" allowScriptAccess='*' allowFullScreen='true'" +
" type='application/x-shockwave-flash' " +
" pluginspage='http://www.macromedia.com/go/getflashplayer' />" +
"";
String …Run Code Online (Sandbox Code Playgroud) 刚刚完成我的代码以使用Android的默认媒体播放器,对媒体播放器非常满意,直到我看到支持的文件扩展名.没有wmv,没有flv等.
所以我想知道,有人知道Android的库可以观看视频......
如果没有,你能给我一些建议如何继续......