問題タブ [audiorecord]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
3 に答える
2590 参照

android - Android 2.2 でマイクからの録音中に奇妙な歪みが発生する

マイクからオーディオを録音し、オーディオに対してリアルタイムで後処理を実行するアプリケーションがあるためAudioRecord、標準の代わりにクラスを使用する必要がありますMediaRecorder。記録用の私のコードは次のとおりです。

上記のコードは正常に動作し、実際にデバイスからオーディオを録音でき、自分の声などが聞こえます。問題は、数秒後、信号全体がかき消されるまで、非常に奇妙な歪みのパターンが現れ始めることです。これは、マイクの上にテープを置き、アプリに 1 分ほど録音させて作成した無音録音のスクリーンショットです。

Wave ファイルの歪みのスクリーンショット

元の wave ファイルは、ここからダウンロードできます

この問題は間違いなく私のエフェクト処理コードによるものではありません。コメントアウトを試みたところ、どちらの場合も同じ結果が得られたからです。他のコードや同様の問題を経験している可能性のある人をウェブで探しましたが、何も見つかりませんでした。

0 投票する
4 に答える
5805 参照

android - サウンドの録音/再生時の音質が悪い - Android SDK

録音してから、録音したばかりのファイルを再生しようとすると、問題が発生します。音の録音と再生はできますが、品質が悪いです。悪いだけでなく、コンピューターで生成された音声のように聞こえます。私は android SDK エミュレーターを使用しています。記録を設定するコードは次のようになります。

後でファイルを再生するコードは次のようになります。

オーディオ ファイルのサウンドが本当に悪いのはどの部分なのか、それともエミュレータだけが悪いのか、実際の電話で動作するのかはわかりません。

0 投票する
2 に答える
5009 参照

android - AndroidAudioRecordの初期化に失敗します

Android用のAudioRecordの使用に問題があります。私はそれについてオンラインで見つけることができる限り多くを読みました、しかし私は良い初期化を得ることができないようです。私はAndroid2.2エミュレーター、1.5エミュレーター、そして私の電話、Froyoを実行しているHTCIncredibleを試しました。エミュレーターと私の電話は初期化に失敗します。

8000、11025、44100のサンプリングレート、CHANNEL_IN_MONO/STEREOとCHANNEL_CONFIGURATION_MONO/STEREOのフォーマット、8ビットと16ビットのエンコーディング(8ビットでgetMinBufferSizeが失敗する)、MICとDEFAULTのAudioSourceを試しました。get状態(初期化に失敗)を実行した後、すべての結果、変数テストは0になります。

私が読んだすべてのことから、これはオブジェクトを正しく初期化するはずだと思われます。HTCデバイスには8192を超えるものが必要だと聞いていたので、buflenの乗数を試して512(関数の結果)から102400の範囲にしました。

問題をテストするために、問題をできるだけ簡単に再現する新しい小さなプロジェクトを作成しました。必要な定数をローカルintに引き出し、コンストラクターを実行してgetStateメソッドにアクセスし、機能するかどうかを確認します。

0 投票する
1 に答える
2627 参照

android - Android の録音と再生 + オプションのスピーカーフォン

Android用のsipアプリケーションをプログラミングしています。通話中は、マイク入力を録音し、着信音声を再生する必要があります。オプションでスピーカーフォンを使用する必要があります。Android 1.5+ (1.5、1.6、2.0、2.1、2.2、将来のバージョン) と互換性があり、デバイスをポータブルにする必要があります。

わかった。そのため、AudioTrack を使用して着信オーディオを再生し、AudioRecord を使用してマイクからのデータを記録し、AudioManager.setSpeakerphoneOn() を使用してスピーカーフォンを有効または無効にしています。

シンプルに聞こえますが、本来あるべきほどシンプルではありません。AudioManager.setMode(AudioManager.MODE_IN_CALL) が呼び出されない限り、AudioManager.setSpeakerphoneOn(false) は機能しません。だから私はMODE_IN_CALLにいなければなりません。

それでもOKでシンプルで、Android 1.6を搭載した私のG1、古いSamsung電話、エミュレーター、多くの顧客デバイスなどで動作します.しかし、どこでも動作するわけではありません:(

Samsung タブレット GT-P1000 では、マイク入力として 0、0、0、0、... のストリームを取得します。同じ問題が Motorola の電話にもあると思います (顧客から不満があります)。いくつかのテストの後、AudioManager.setMode(AudioManager.MODE_IN_CALL) が原因であることがわかりました。これにより、一部のデバイスでマイクが機能しなくなります。しかし、そうしないとスピーカーフォンを無効にできないため、電話する必要があります。

シンプルで正しく機能する簡単な方法はありますか?そして、可能であれば、Sipdroid の非常に危険なソース コードのような地獄がなければ:

また

どうもありがとうジャン

0 投票する
1 に答える
9974 参照

android - AudioRecorderにアクセスできません

サービスから音圧レベルを見つけるために小さな録音をしようとしていますが、Androidはハードウェアへのアクセスを許可しません。Logcatで次のエラーが発生します。

代替テキスト

エラーは次のコードから発生します。

何が起こるかというと、recordInstanceが適切に作成されないため、最後に到達してrecordInstance.startRecording()を呼び出しても、recordInstanceはnullのままです。Androidは、定義で私のプログラム要求を拒否します。誰かがそれらのerrnoが何を示しているか知っていますか?オンラインでリストが見つかりませんでした。

AudioRecordドキュメント

ありがとう

0 投票する
2 に答える
5982 参照

android - Android Emulator は音声を拾えますか?

OS XでAndroid Emulatorを実行しており、AudioRecordを使用してオーディオのサンプルを取得し、FFT jarを使用して周波数を決定しようとしています(チューニングアプリ用)。

電話を使用してデバッグするのが難しいので(http://stackoverflow.com/questions/4425127/android-galaxy-s-phone-adb-debug-bridge-trouble-on-mac-osx)、使用したいエミュレーター。

エミュレーターからオーディオのサンプルを取得すると、ランダムな値が含まれているように見えます。何かを録音していると思いますが、コンピューターのマイクから来ているかどうかはわかりません。これらの値が何から来ているのか、エミュレーターを使用して記録できるかどうかを誰でも確認できますか?

次のように AudioRecord オブジェクトを初期化しています。

0 投票する
7 に答える
8503 参照

android - 例外を与える Android での記録

次のコードを使用してエミュレーターを介してオーディオを録音しようとすると

次に、logcat で次の例外が発生します。

このコードのどこが間違っているか分かりますか?

0 投票する
4 に答える
22911 参照

android - AndroidAudioRecordの初期化は毎回失敗します

私の問題は簡単に説明できます。AudioRecordオブジェクトを作成しようとしていますが、初期化に失敗します(つまり、コンストラクターの後、getStateは0を返し、失敗を示します)。私はこれをEclipseからOS2.2.1を実行しているMotoDroid1で実行しています。私のAndroidManifest.xmlは、AFAIKであり、適切な権限RECORD_AUDIOを使用しています(これを確認する方法がわかりません)。

AudioRecordを作成するには、次のようにします。

audioRecorder.getState()は0を返します(つまり、STATE_UNINITIALIZED)

このAPIを使用した完全な例は見つかりませんでした。私は、Androidの初心者なので、解決策は単純なものかもしれません。なぜ失敗するのかを知るために何ができますか?

何人かの人々が同様の質問をしましたが、彼らが承認した修正が私を助けていないので、彼らは私とは異なる問題を抱えていたに違いありません。最も注目すべきはこれです。しかし、承認された解決策は当惑していて、とにかく私にはうまくいきませんでした。また、モノラルとステレオの両方、および8ビットと16ビットのさまざまなビットレート(8000、16000、11025、44100)を試しました。初期化に成功したため、組み合わせは返されません。

0 投票する
1 に答える
2291 参照

android - Android AudioRecord での AudioHardwareALSA エラー

私が書いている単純なAudioRecordアプリを開始しています。それはこれらの束から始まります:

そしてこれ:

これはどういう意味ですか?必要に応じてソース コードを投稿できますが、これらのエラーが何を参照している可能性があるか、およびそのような状況でバッファ オーバーフローが発生する理由についての基本的な回答を探しています。ありがとう。

0 投票する
1 に答える
709 参照

android - アプリがクラッシュしたときに Android リソースを解放する方法

私は Android AudioRecord アプリを使用しています。release()スクリプトの最後で AudioRecord オブジェクトのメソッドを呼び出さないと、電話を再起動するまで正しく動作しません。

アプリがクラッシュした場合 (テスト中に時々発生し、予期しないバッファー オーバーフローが発生した場合など)、毎回電話を再起動する必要があるため、このプロジェクトに取り組んでいるとき、これは大きな問題になります。

finalize()AudioListener クラスのメソッド内にバッファを解放するメソッドがあり、それらonStop()をメインのアクティビティからも呼び出します。

アプリがフリーズまたはクラッシュすると、これらのどちらも機能しないようです。リリース アクションをエラー ハンドラーにアタッチする方法や、アプリがコードを実行してクラッシュ後でもリソースを適切に解放することを保証する一般的な方法はありますか。

助けてくれてありがとう。