2

PhoneGap アプリケーションでHowler.jsを使用しています。オーディオ ファイルが大きい (10Mb 以上) ため、バッファ属性を true に設定します (HTML5 オーディオを強制します)。

var theSound = new Howl({
  urls: ['assets/Sound.m4a'],
  buffer: true,
  sprite: {
    scene0 : [ 1966000, 27000] }

エミュレーターと iPad Mobile Safari でアプリケーションをテストすると、すべて正常に動作します。しかし、iPad でアプリケーションをアプリとして実行すると、オーディオが開始されません。Web インスペクタを使用すると、オーディオ ファイルがループのように何度も何度も読み込まれることに気付きました。エミュレーターと iPad の両方で、同じ PhoneGap アプリを実行している Web インスペクターの [リソース] タブのスクリーンショットを添付して確認できます。

ここに画像の説明を入力

何が問題になる可能性がありますか?

4

2 に答える 2

3

問題はファイルサイズかもしれません。iPad にはキャッシュ メモリのサイズに制限があり、オーバーフローするとアセットが機能しなくなります。この問題の唯一の解決策は、ファイル サイズを小さくすることです。もう 1 つの可能性は、ユーザー イベント (タッチ) を除いて、html オーディオがロードまたは再生されないことです。Web オーディオはロードされますが、ミュートされた状態で開始され、ユーザー イベント内の再生呼び出しでのみミュートが解除されます。

SoundJSは、私が開発を手伝っているライブラリで、このようなものを可能な限り処理します。特に、 Mobile Safe Approachが役立つと思います。iOS および Android デバイスで十分にテストされています。残念ながら、サウンド スプライトはまだサポートされていません。

それが役立つことを願っています。

于 2014-03-12T15:21:12.033 に答える
3

私はしばらくこれを調べてきました。

私が収集したものから、Howler はデフォルトで Web Audio API に設定されています。この SO の回答では、デフォルトではすべてがミュートされるため、iOS で動作させるには「ユーザー入力イベント」が必要であると述べています。iOS 5 (まだ更新していません) を搭載した iPad 2 で Howler 独自のインタラクティブなデモを試してみましたが、サウンドは機能しませ。私の最初のリンクには Apple のドキュメントへのリンクがあり、まだ試していませんが、Howler の利便性を XMLHTTPRequest で約 5 ~ 10 行かかる低レベルの実装に置き換える必要があるようです (Apple のリンクを参照)。 )、または別のより用途の広いライブラリ。私はまだ正確に何が必要かを学んでいますが、今日解決に取り組んでいる非常によく似た問題があります。

しかしその後、Howler は HTML5 Audio にフォールバックします。わかりましたので、今グーグルで検索していると、このリンクが表示され、さまざまなブラウザーとブラウザーレイアウトエンジンとオペレーティングシステムのOGG ACC MP3などの間の互換性に関する考慮事項が多すぎることを思い出しました。したがって、私が知る限り、MP3に関連するファイル形式M4Aは、ターゲットiPad OSのターゲットブラウザーで機能していないと信じています。私はまだ正確な詳細を説明できるほど詳しくはありませんが、私の iPad では Howler が動作しないため、少なくとも問題があることは確かです。

私がハウラーを使用することを選択した全体のポイントは、上記のすべてを抽象化することでした! 私は今、別のより包括的なライブラリを探しに行くつもりです = D

于 2014-03-11T23:03:55.423 に答える