【问题标题】:Camera with custom shutter sound具有自定义快门声音的相机
【发布时间】:2013-07-14 01:46:21
【问题描述】:

我有一个自定义的camera 实现,我希望在使用 API 10 拍摄照片时拥有自己的声音。我有以下代码可以执行play my sound,但它也播放默认的相机声音,我只需要播放我的相机声音而不是默认的。

   //takes picture
   mCamera.takePicture(myShutterCallback, myPictureCallback_RAW, myPictureCallback_JPG);

   ShutterCallback myShutterCallback = new ShutterCallback() {

    @Override
    public void onShutter() {
        MediaPlayer.create(SecondCamera.this,R.raw.camera_click).start();
    }
};

【问题讨论】:

    标签: android android-camera


    【解决方案1】:

    试试这个,

    if (android.os.Build.VERSION.SDK_INT>=android.os.Build.VERSION_CODES.JELLY_BEAN_MR1){
          camera.enableShutterSound(false);
    
    }
    else{
            AudioManager audio= (AudioManager)this.getApplicationContext().getSystemService(Context.AUDIO_SERVICE);
            currentVolume=audio.getStreamVolume(AudioManager.STREAM_SYSTEM);            
            audio.setStreamVolume(AudioManager.STREAM_SYSTEM, 0,   AudioManager.FLAG_REMOVE_SOUND_AND_VIBRATE);
            MediaPlayer media= MediaPlayer.create(SecondCamera.this,R.raw.camera_click);
            media.setAudioStreamType(AudioManager.STREAM_NOTIFICATION);
            isVolumeChanged=true;           
         }
    

    onShutter() 之前执行上述操作,然后在onShutter() 上调用media.start()

    然后在onPictureTaken() 上执行以下操作。

    public void onPictureTaken(byte[] data, Camera camera) {
    
    
            if (isVolumeChanged){
                audio.setStreamVolume(AudioManager.STREAM_SYSTEM,currentVolume,AudioManager.FLAG_REMOVE_SOUND_AND_VIBRATE);
            }
        }      
    

    希望对你有帮助!!!!!!

    【讨论】:

      猜你喜欢
      • 2013-01-06
      • 1970-01-01
      • 2012-05-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多