2

Radio Web App を Android ブラウザベースにしたい。私の Web アプリの重要な機能は、音楽リスト (mp3 ファイル) を継続的に再生することです... JavaScript コードはシンプルです...そして、PC ブラウザー、iOS サファリ、および Android Dolphin ブラウザー (サードパーティのブラウザー) でうまく動作します...


var audioPlayer = new Audio();

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

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

しかし。Android デフォルト ブラウザでは、Android がバックグラウンド モード (ホーム画面モード & LCD オフ スリープ モード) にある場合、Android ブラウザの onPause() は「終了」イベントと nextSong() の実行を防ぎます。そのため、私の Web アプリは 1 つの音楽しか再生できません....それ以上は機能しません... 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 ベースの Web アプリ (ハイブリッド) ではなく、ブラウザー ベースの Web アプリのみを検討しています...ありがとう...

クァク・ノヒョン

4

1 に答える 1

0

Droid の終了イベントが一貫して発生しません。ICSで修正されたそうです。しかし、ジンジャーブレッド以前には問題があります。

.ended をリッスンする代わりに、.timeupdate をリッスンして、そのハンドラーで時間が曲の終わりかどうかを確認できますか? それはあなたの問題を解決するかもしれません。

于 2012-11-27T20:12:02.543 に答える