2016-05-17 91 views
0

我在網上看到人們都在使用WebView時遇到問題,即在應用程序移動到背景時不會暫停音頻。WebView不會在後臺應用程序中播放

我有確切的OPPOSITE問題。我想要音頻繼續在後臺播放,但它不會。我目前在Youtube上開始播放視頻,如果我關閉了屏幕(當應用程序處於前臺時),它會繼續播放,但當按Home按鈕時,它將停止播放。

任何想法,爲什麼它沒有,顯然,默認行爲?

以下是我建立我的web視圖,如果它的事項

public void setupWebView(Context ctx, ISlideWebView wv, IWebViewToParentComm listener, 
         File cacheFolder) { 
    if (wv == null || !(wv instanceof WebView)) { 
     throw new IllegalArgumentException("Webview expected to be of type SlideWebView. Found class type [" + wv.getClass().getName() + "]"); 
    } 

    SlideWebView webview = (SlideWebView) wv; 

    WebSettings webSettings = webview.getSettings(); 

    webSettings.setCacheMode(WebSettings.LOAD_CACHE_ELSE_NETWORK); 

    webSettings.setSaveFormData(false); 
    webSettings.setLoadWithOverviewMode(true); 
    webSettings.setSupportZoom(false); 
    webSettings.setUseWideViewPort(true); 
    webSettings.setBuiltInZoomControls(false); 

    webSettings.setAppCachePath(cacheFolder.getAbsolutePath()); 
    webSettings.setAppCacheEnabled(true); 
    webSettings.setDatabaseEnabled(true); 

    webSettings.setSaveFormData(false); 
    webSettings.setSavePassword(false); 
    webSettings.setGeolocationEnabled(true);//TODO: ?! AppConfig.getInstance(context).usesGeolocation 
    webSettings.setJavaScriptEnabled(true); 
    webSettings.setJavaScriptCanOpenWindowsAutomatically(true); 
    webSettings.setDisplayZoomControls(false); 
    webSettings.setLoadWithOverviewMode(true); 
    webSettings.setUseWideViewPort(true); 

    webview.setWebViewClient(new SlideWebViewClient(ctx, listener.getUrlNav(), listener.getUrlNavInterface())); 
    webview.setWebChromeClient(new SlideWebChromeClient(listener)); 
    webview.setVerticalScrollListener(listener); 
    webview.setOverScrollMode(View.OVER_SCROLL_NEVER); 
    webview.setScrollbarFadingEnabled(false); 

    FileDownloader fileDownloader = listener.getFileDownloader(); 
    if (fileDownloader != null) { 
     webview.setDownloadListener(fileDownloader); 
    } 
} 

回答

0

的問題是,我與youtube.com測試它。我已經使用網絡流式廣播音樂測試了它,並且它工作得很好。所以顯然youtube.com或者parhaps(還沒有測試過)視頻一般不會在後臺播放。

1

是啊,你說的WebView問題是有沒有background.Even打,我們有同樣的問題,但具體的Android API級別。有特定的API調用webview.pause()webview.resume()。這些調用將專門處理JavaScript。我們使用這些調用來處理問題(您需要使用反射的較低版本)。

所以按照你的JavaScript在暫停和恢復處理,則需要再次進行更改作爲活動回撥電話webview.onResume()

+0

是的,其實是一個好主意。我只是試了一下。當Activity調用onPause時,我在webview上調用onResume,但它似乎仍然停止播放視頻。 :(任何其他想法? – AndreiBogdan

相關問題