Возможно ли сохранить звук WebView в фоновом режиме на Android? - PullRequest
0 голосов
/ 24 ноября 2018

Можно ли сохранить звук из WebView, в частности, встроенного клиента Webtorrent (который воспроизводит видео), работающего в фоновом режиме на Android?Я видел противоречивые ответы на этот вопрос, и мне любопытно, что вы, ребята, знаете об этой теме.Я видел несколько подтвержденных ответов о способах сделать это в Android Studio, но не видел ни одного для Xamarin.

Мне сказали, что WebView считается элементом пользовательского интерфейса;следовательно, это делает невозможным сохранение видео / аудио в фоновом режиме.Так что, если это так, как вы думаете, с помощью некоторого умного кодирования я мог бы переопределить ОС Android, чтобы обмануть его, думая, что WebView по-прежнему находится на переднем плане?

Я знаю, что можно поддерживать работу звука, используяMediaPlayer, если, например, вы воспроизводите MP3. Так что другой возможностью может быть использование службы для поддержания фокусировки звука;но тогда, видео остановится (видя, как это не исправляет WebView, являющийся элементом пользовательского интерфейса)?

Еще одна возможность - перенести все приложение в службу ... но я не уверен, возможно ли это.Если я получу ответ, что это так, я сделаю работу, чтобы это произошло.

Я не ищу вас, ребята, для написания кода;Я просто ищу руководство о том, какой метод (если таковой имеется) был бы возможен / вероятен / наиболее эффективен.

и вот пример кода, который я сейчас использую для создания своего WebView (не уверен, имеет ли это значение)

//what's on
[Activity]
//this class should be an aggregate subscription feed
public class WhatsOnActivity : Activity
{
    public override void OnBackPressed()
    {


        WebView whatsOnWebView = FindViewById<WebView>(Resource.Id.webViewWhatsOn);

        whatsOnWebView.GoBack();
    }

    protected override void OnCreate(Bundle savedInstanceState)
    {
        base.OnCreate(savedInstanceState);

        SetContentView(Resource.Layout.whatsOn);

        //declare webview and tell our code where to find the XAML resource
        WebView whatsOnWebView = FindViewById<WebView>(Resource.Id.webViewWhatsOn);

        whatsOnWebView.SetBackgroundColor(Android.Graphics.Color.Green);
        //set the webview client
        whatsOnWebView.SetWebViewClient(new WebViewClient());
        //load the 'whats on' url, will need webscript for curated subscribed feed
        whatsOnWebView.LoadUrl("https://www.bitchute.com/#listing-subscribed");
        //enable javascript in our webview
        whatsOnWebView.Settings.JavaScriptEnabled = true;
        //zoom control on?  This should perhaps be disabled for consistency?
        //we will leave it on for now
        whatsOnWebView.Settings.BuiltInZoomControls = true;
        whatsOnWebView.Settings.SetSupportZoom(true);
        //scrollbarsdisabled
        // subWebView.ScrollBarStyle = ScrollbarStyles.OutsideOverlay;
        whatsOnWebView.ScrollbarFadingEnabled = false;


    }
}

РЕДАКТИРОВАТЬ: Кроме того, мой проект с открытым исходным кодом можно найти здесь https://github.com/hexag0d/bitchute_mobile_android_a2

Спасибо, заранее.=]

...