私はウェブベースのオーディオプレーヤーを持っており、現在再生中に次のトラックをプリロードしたいと考えています。 私は新しいオーディオオブジェクトprefetch = new Audio(url)
を作成します。スイッチするときは、現在のオーディオをプリロードされたオーディオと交換して、.play()
をトリガーするだけです。アクティブでないタブの新しく作成されたオーディオ要素は動作しません
しかし、タブがアクティブでない場合は、必ずしも機能しません。ときどきスワップする時に、networkState == 3 (NETWORK_NO_SOURCE)
とreadyState = 0 (HAVE_NOTHING)
のプリフェッチされたオブジェクトが見つかりました。
タブに戻ると、すぐに再生が開始されます。
私はそれを非同期リソース選択アルゴリズムとブラウザのオプティマイズによって引き起こしましたが、動作させる方法は不明です。
(主にSafariで再現可能)
はい、私は理解していますが、Webワーカーなしで強制的にプレイする方法はありますか? –
@PlasticRabbitいいえ – Justinas