2012-03-18 28 views
4

私は、マイクから録音した音声を録音して分析するバックグラウンドサービスとして動作するアプリケーションを作成しています。アプリが起動しているときは、マイクを使用している他のアプリ(電話、音声録音など)は使用できません。Androidでオーディオ入力(マイク)ストリームを共有することはできますか?

私の質問です - Androidでマイクストリームを共有する方法はありますか?たぶん、NDKを使って?そうでない場合は、別のアプリがマイクを必要としているという通知(BroadcastIntentなど)を受信することは可能ですか?

答えて

5

単純回答は「いいえ」です。これは、オーディオ録音方法が同期されているためです。だから、2つ以上のリソースがそれを模倣することはできません。そうすることで、アプリケーションを強制終了させることがあります。

+0

OK - ネイティブオーディオAPIを使用してこれを回避することは可能でしょうか? – smichak

+0

私はそうは思わない。オーディオパッケージやデバイスの故障の原因となる可能性があります。 – Android

+0

待って - 私はそれを取得しない... javaの '同期'キーワードを意味するのですか?私は2つの異なるアプリケーションについて話しています。私は排他的なものは何か他のものによると思う。 – smichak

1

これは古いですが、共有マイクリソースをシミュレートするために、数分おきにマイク接続を強制終了/再開できる場合があります。それは
をすることができ、他のアプリがマイクのデータを収集しようとしている場合

  1. は、
       うまくいけば、数分ごとにマイクから切断するためにタイマーを設定します。これは、テストされていないハック...基本的に

    です    同時にデータ
    ため

  2. 再接続しようとテスト    他のアプリケーションは、IFを収集から他のアプリをブロックしマイクを持っており、データをブロックしている場合は、
       将来的に再接続しようとします。

私はこれをテストしていませんが、解決策が必要なので、動作すればコードを投稿します。

0

他のアプリケーションの実行中にのオーディオ/ビデオを録画すると、が可能です。私はソニーXperia Z1でそれをやった、ダウンロードしたスクリーンレコーダーで継続的に記録されたビデオと呼び出し。しかし、私はこれが何らかの不具合であると信じています。しばらくして(約2ヶ月)録音を停止し、別のアプリケーションでマイクが使用されているというエラーを表示し始めました...

関連する問題