2017-10-09 11 views
2

私はアンドロイド(およびIOS)アプリケーションで作業していますが、アプリケーションは問題なくオーディオメッセージを再生します。私の問題は以下の通りです: 携帯電話が既にブルートゥースに接続されている場合(ブルートゥースが有効で接続されている場合)、アプリケーションを起動し、オーディオファイルを再生すると、テレフォンやブルートゥーススピーカーで何も聞こえません。cordova Bluetoothのサウンドが聞こえません

しかし、アプリケーションを起動してから、Bluetoothを有効にしてから、オーディオファイルを再生しても問題はありません。ブルースピーカーで音がうまく消えます。

私が今使っている解決策は、アプリケーションを起動すると完全にBluetoothを無効にしてから、onDeviceready(プラグインコードバスを使用)で再起動するということですが、そのようなフィンが機能しますが、ブルートゥースは、特にそれが車のブルートゥースである場合には、接続を解除して再接続するというユーザにとって非常に迷惑である。

誰もが同じ問題を抱えていますか、別の解決策を見つけるのを手助けできますか?

私は最新のバージョンのCordova(7.0.1)、android(6.2.3)... を使用していますが、plugova cordova-plugin-bluetoothleを使用してBluetoothを再起動します)

どのようなアイデアですか?

+0

いずれかのアイデアを歓迎...... – Bmo85

答えて

0

まったく同じ問題がここにあります!私はCordova(7.1.0)で構築されたAndroid(6.4.0)とiOS(4.5.3)用の音楽ウェブアプリケーションに取り組んでいます。私はwebaudio APIを使ってサウンドを再生します。この特定の場合を除いて、すべてのプラットフォームで素晴らしい動作をします。

私がアプリケーションを起動する前にBluetoothが有効になっていて、接続されている場合、すべてのサウンドが再生されません。この問題は、のAndroidでのみが発生します。 Androidデバイスのいくつかのモデル/タイプ上では、例...それはないいくつかの他に、動作します:

  • サムスンJ3(アンドロイドV5.1.1)=
  • LENOVO TB2(アンドロイドV5をプレイしていない音を。 1.1)=音が鳴らない
  • HUAWEI VTR(Android v7.0)=音が鳴りません
  • LG G6(Android v7.0)=魅力的です!

残念ながら、私はまだ「きれいな」解決策を見つけられませんでした。

  1. 力この1が接続されている場合はBTを無効にするには、
  2. ページ全体をリロードし、
  3. BTを再接続します。私はあなた(BT =ブルートゥース)よりも同じことを行います。

テスト中に私が見つけた唯一のヒントは、AudioContextオブジェクトの属性に関するものです。 AudioContextオブジェクトには、baseLatencyという属性があります。 official DOCはそれについて実際に明確ではない:

これは、オーディオサブシステムの[にAudioDestinationNodeからオーディオを渡すAudioContextによって発生処理の待ち時間の秒数を表して...AudioContextがされた後]私は理解何

は...このプロパティは、彼の目的地にサウンドをもたらすためにAudioContextによって必要な時間/遅延の(秒)あなたの評価を与えること

右ですあなたのコードで初期化され、あなたはこのbaseLatency(読み取り専用プロパティ)を求めることができます、私は私のテスト中に気づいた何

var context = new AudioContext(); 
console.log(context.baseLatency);// 0.008 for example 

このbaseLatencyは常に0.2 eより高いことです非常に問題が発生する。ブルートゥースDISABLED

例:ブルートゥース

// baseLatency on computer = 0.008 
// baseLatency on iOS devices = 0.05 
// baseLatency on Android devices = 0.05 

を有効:

// baseLatency on computer = 0.008 (same) 
// baseLatency on iOS devices = 0.05 (same) 
// baseLatency on (some) Android devices = 0.2 (HIGHER) 

をまあ、私はこのテストの数百倍、それぞれ回同じ結果をしました。 AndroidデバイスでbaseLatencyのアプリケーションを起動する前にBTを有効にすると、AudioContextはアプリケーションでサウンドを再生できなくなります。これは私が知っている解決策ではありませんが、アプリケーションがサウンドを再生するかどうかを確実に知らせることによって少し助けになります。

AudioContextオブジェクトを再初期化しようとしましたが、これはまったく動作しません... AudioContextオブジェクトを再構築しても、baseLatencyは同じままです。

この小さなヒントが解決策を見つけるのに役立つことを願っています。

関連する問題