android - إيقاف الروبوت التطبيق الصوت اللعب عندما يكون الجهاز مؤمن



cordova audio (1)

لدي حالة حيث لدينا التطبيق الروبوت باستخدام عرض ويب. عندما ينتقل المستخدم إلى فيديو يوتوب، يبدأ تشغيله (باستخدام الصوت)، ثم يقوم المستخدم بإقفال الجهاز باستخدام مفتاح الجهاز للجهاز، فإنه يستمر في تشغيل الصوت.

لا يحدث هذا عندما يتم إرسال التطبيق إلى الخلفية باستخدام القائمة الجهاز أو عند الخروج من التطبيق.

لا أحد يعرف لماذا يحدث هذا وكيفية وقف ذلك؟

إديت: لقد وجدت للتو مماثلة، دون رد، آخر هنا: التطبيق يتيح تشغيل الخلفية من أشرطة الفيديو، القضايا كوردوفا، جوجل اللعب رفض التطبيقات


كان لي نفس المشكلة مع جوجل رفض التطبيق لأن ويبفيو تواصل تشغيل الصوت من فيديو يوتيوب عند الضغط على زر الطاقة لإيقاف الشاشة.

لسبب ما يبدو أن الضغط على زر الطاقة لا يؤدي إلى أونبوس ويبفيو ()، وهذا هو السبب في استمرار الصوت للعب. على الرغم من أن ذلك مفيد في القول بأن الاحتفاظ بالموسيقى قيد التشغيل أثناء إيقاف تشغيل الشاشة، إلا أن غوغل لا تحب هذا السلوك لمقاطع فيديو يوتوب.

لجعل غوغل سعيدا، يمكنك تجاوز أون بوس () نشاطك / جزءك كما يلي:

@Override
public void onPause() {
    super.onPause();
    myCustomWebView.onPause();
}

سيؤدي الضغط على زر التشغيل الآن إلى تشغيل أونبوس (). ولكن هذا يخلق مشكلة أخرى: ماذا عن الصوت الذي تريد فعلا الاستمرار في اللعب في حين أن الشاشة هو خارج؟

أحد الإصلاحات التي توصلت إليها هو تجاوز أونلودرسورس ()، والذي يسمح لي للتحقق ما إذا كان المورد من يوتيوب، والذي يحدد ما إذا كان يجب أن يتم استدعاء أونبوس () على ويبفيو عندما يحين الوقت. شيء من هذا القبيل:

myCustomWebView.setWebViewClient(new WebViewClient() {
    @Override
    public void onLoadResource(WebView webview, String url) {
        super.onLoadResource(webview, url);
        if (url.contains("youtube.com")) mShouldPause = true;
    }

    //...... plus any other method you want to override

});

وبطبيعة الحال، هذا يعني أن أي مورد لديه "youtube.com" في انها ورل سيؤدي العلم، ولكن بالنسبة لي حاجتي هذا يكفي. لذا فإن أسلوب أونبوس () سيبدو الآن مثل هذا:

@Override
public void onPause() {
    super.onPause();
    // mShouldPause is just a private boolean
    if (mShouldPause) {
        myCustomWebView.onPause();
    }
    mShouldPause = false;
}

لذلك هذا هو الحل الذي توصلت إليه دون تعبث مع العمل الداخلي في ويبفيو باستخدام التفكير. قد ترغب في إنشاء إشعار يحتوي على زر لوقف الصوت أو يجلب المستخدم مرة أخرى إلى التطبيق الخاص بك حتى لا ينسى المستخدم الذي التطبيق هو جعل الصوت واعتقد الهاتف مسكون !!!





background