0

ユーザーができる簡単なアプリケーションを作成しました。

  • ボタンを押してカメラアプリケーションを開きます
  • カメラアプリで写真を撮る

コードからカメラのシャッター音を無効にする方法はありますか? 私は現在、Android 4.1.2 バージョンを搭載した Orange Nivo スマートフォンを持っています。

私のコードの一部は次のとおりです。

          public void onClick(View v) {
                try {
                    f = createImageFile();
                    Intent cameraIntent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
                    cameraIntent.putExtra(android.provider.MediaStore.EXTRA_OUTPUT, Uri.fromFile(f));
                    startActivityForResult(cameraIntent, CAMERA_REQUEST);   
                } catch (IOException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }



            }
        });
    }

    protected void onActivityResult(int requestCode, int resultCode, Intent data) {  
        if (requestCode == CAMERA_REQUEST && resultCode == RESULT_OK) {  

            Bitmap photo = BitmapFactory.decodeFile(f.getAbsolutePath());
            Bitmap newphoto = Bitmap.createScaledBitmap(photo, 200, 200, false);     
            imageView.setImageBitmap(newphoto);

この効果を達成する方法についての提案をいただければ幸いです。シャッター音なしで写真を撮るアプリがAndroidストアにあることを知っているので、電話をルート化せずにこれを行う方法があるに違いないと思います.

4

1 に答える 1

1

簡単な答えは次のとおりです。

シャッター音を鳴らさずに写真を撮ることは法律で禁止されているためで、これはプライバシー上の理由からです。さらに、お気づきのように、カメラのプレビューが適切に設定されていない場合でも、プライバシー上の理由から写真を撮ることはできません. この時点で、次の 4 つのオプションがあります。

  • API をハッキングする方法を見つける

  • 電話をルート化してシャッター音を無効にする

  • カメラ用の独自のネイティブ コードを記述します...ただし、これは使用しているデバイスに大きく依存する場合があります

  • ほとんどの(すべてではないにしても)サイレントカメラで使用される方法でもある最も単純な方法を使用します

市場でのアプリケーション。onClickListener からの onPreviewFrame コールバックを介してプレビュー フレームをインターセプトし、それを画像として保存するだけです。ここでの主な欠点は、最大プレビュー解像度が最大画像解像度よりもはるかに低いため、この方法で撮影する写真の解像度がかなり低くなることです。実際、市場に出回っている静音カメラ アプリに関するコメントを読むと、多くの人が画像の解像度があまり高くないことに不満を持っていることがわかります。これが理由です。彼らは、上で説明したトリックを使用します。

結論として、あなたが望むものを達成する簡単な方法はありません!

于 2013-07-13T13:52:18.273 に答える