Браузер Android не может поддерживать список воспроизведения с аудио HTML5 в фоновом режиме

Я хочу сделать Radio Web App на основе Android-браузера. Ключевой функцией моего веб-приложения является постоянное воспроизведение музыкального списка (файлы mp3)... Код JavaScript прост... И он хорошо работает в браузере ПК, iOS Safari и браузере Android Dolphin (сторонний браузер)...


var audioPlayer = new Audio();

audioPlayer.addEventListener('ended', nextSong, false);

function nextSong() {
  audioPlayer.src = nextMusic_src; 
}

Но. в браузере Android по умолчанию, когда Android находится в фоновом режиме (режим домашнего экрана и спящий режим с отключенным ЖК-дисплеем), onPause() браузера Android предотвращает «законченное» событие и выполнение nextSong(). Итак, мое веб-приложение может воспроизводить только одну музыку.... и больше не работает..... Исходный код браузера Android onPause() выглядит так...


BrowserActivity.java

public class BrowserActivity extends Activity 
{

   private Controller mController;

   // ...

   @Override

   protected void onPause() {

       if (mController != null) {
           mController.onPause();        //   <<==== here
       }
       super.onPause();
   }

}

Контроллер.java

public class Controller implements WebViewController, UiController {

   protected void onPause() {

       // ...
       mActivityPaused = true;
       // ...
       mUi.onPause();
       mNetworkHandler.onPause();        //   <<==== here

       WebView.disablePlatformNotifications();      //   <<====here
   }

}


NetworkStateHandler.java

public class NetworkStateHandler {

   // ...

   void onPause() {

       // unregister network state listener

       mActivity.unregisterReceiver(mNetworkStateIntentReceiver);  //  <<==== here

   }

}

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

Нохён Квак


person user1409403    schedule 22.05.2012    source источник
comment
На какой версии Droid вы тестируете?   -  person Judah Gabriel Himango    schedule 28.11.2012


Ответы (1)


Завершенное событие Droid срабатывает не всегда. Я слышал, это исправлено в ICS. Но у Gingerbread и Prior есть проблема.

Вместо того, чтобы слушать .ended, можете ли вы слушать .timeupdate и в этом обработчике смотреть, является ли время концом песни? Это может решить вашу проблему.

person Judah Gabriel Himango    schedule 27.11.2012