1

カメラのシャッターと同時に音を鳴らすにはどうすればよいですか?

私のアプリケーションでは、インセット カメラ プレビューがあります。アクティビティ開始から 5 秒後に自動的に 3 枚の写真を撮影します。この間、アプリケーションは Bluetooth 経由でさまざまな値を受信して​​います。値が事前に設定されたしきい値を超えるたびに、アプリケーションは MediaPlayer を使用してトーンを再生します。

問題は、カメラがオフになると、シャッター クリック音がすべてのオーディオを引き継ぐように見え、再生中のトーンが停止し、3 回のシャッター クリック後にのみ再開することです。カメラのシャッターを無音にしたくないので、シャッター クリックでトーンを再生する方法はありますか? これはすべて 1 つのアクティビティで行われます。

ありがとう

4

3 に答える 3

1

考えられる解決策の1つENFORCED_AUDIBLEは、トーンに非表示のストリームタイプを使用することです。これは、カメラのシャッター音が使用する可能性が最も高いストリームタイプであるため、シャッター音がミュートされていない限り、ミュートされません。

このストリームタイプはICS(またはGB / HCだったかもしれませんが、頭の中ではっきりとは言えません)まで導入されなかったため、存在するすべてのバージョンのAndroidと互換性があるわけではないことに注意してください。このストリームタイプ識別子の整数値は7ですが、存在するかどうかを確認したり、プログラムでその値を取得したりする場合は、AudioSystemクラスのリフレクションを使用して行うことができる場合があります。

これを行う方法の例を次に示します。

public static boolean mHasEnforcedStream = true;
public static int STREAM_SYSTEM_ENFORCED = 0;

...

static
{        
    try
    {
        Class asClass = Class.forName("android.media.AudioSystem");
        Field sseField = asClass.getDeclaredField("STREAM_SYSTEM_ENFORCED");
        STREAM_SYSTEM_ENFORCED = sseField.getInt(null);
    }
    catch (Exception e)
    {
        mHasEnforcedStream = false;
    }
}


このストリームタイプを使用すると、ユーザーが3.5mm有線ヘッドセットを接続している場合や、ユーザーが電話をサイレントモードに設定している場合でも、常にスピーカーでトーンが聞こえることに注意してください。

于 2012-12-11T06:51:29.690 に答える
0

これはあなたが必要とするものだと思います。これには、必要なものが含まれているはずです。カメラ シャトル サウンドに固有のオーディオ チャンネルを無効にできる可能性はありますが、他のサウンドが必要なため、最初のリンクはおそらく 2 番目のリンクよりも便利です。

于 2012-12-11T06:42:26.667 に答える
-1

私はまだプログラミングに慣れていないので、どのファイルがカメラの音を出すかについてGoogle検索を行い、それらのファイルの名前を別の拡張子に変更する場所にアプリを配置して、音が出ないようにします。名前を元のファイルに戻します。または、カメラの値を変更してカメラをサイレントにする方法を調べます。私の Samsung Galaxy SIII では、カメラのファイル名を変更しなければならなかったことを知っています。(スプリントキャリア)

于 2012-12-11T06:29:10.713 に答える