如何以编程方式在android中录制静音视频

时间:2014-01-20 09:41:15

标签: android mediarecorder android-mediarecorder video-recording

我正在尝试使用MediaRecorder在Android中创建视频录像机,用户可以选择录制静音视频,即录制没有音频的视频。我检查了是否有任何选项可以记录android&中的静音视频经过大量的搜索,我没有得到任何完美的方法,我尝试了下面的AudioManager方法:

audioManager.setStreamMute(AudioManager.STREAM_SYSTEM, true);

audioManager.setMicrophoneMute(true);

audioManager.setStreamVolume(AudioManager.STREAM_SYSTEM, 0,   AudioManager.FLAG_REMOVE_SOUND_AND_VIBRATE)

但他们都没有为我工作。

任何人都可以帮助我解决这个问题。

谢谢!!!

1 个答案:

答案 0 :(得分:5)

以下是我处理它的方式。

  boolean settingsSound = sharedPrefSettings.getBoolean("settingsSound", true);

  if (!settingsSound) {   
      mediarecorder.setOutputFormat(MediaRecorder.OutputFormat.MPEG_4); 
      mediarecorder.setVideoFrameRate(profile.videoFrameRate); 
      mediarecorder.setVideoSize(profile.videoFrameWidth, profile.videoFrameHeight); 
      mediarecorder.setVideoEncodingBitRate(profile.videoBitRate); 
      mediarecorder.setVideoEncoder(profile.videoCodec); 
  } else{ 
      mediarecorder.setAudioSource(MediaRecorder.AudioSource.DEFAULT); 
      mediarecorder.setOutputFormat(MediaRecorder.OutputFormat.MPEG_4); 
      mediarecorder.setVideoFrameRate(profile.videoFrameRate); 
      mediarecorder.setVideoSize(profile.videoFrameWidth, profile.videoFrameHeight); 
      mediarecorder.setVideoEncodingBitRate(profile.videoBitRate); 
      mediarecorder.setAudioEncodingBitRate(profile.audioBitRate); 
      mediarecorder.setAudioChannels(profile.audioChannels); 
      mediarecorder.setAudioSamplingRate(profile.audioSampleRate); 
      mediarecorder.setVideoEncoder(profile.videoCodec); 
      mediarecorder.setAudioEncoder(profile.audioCodec); 
  }

只是不要设置audiosource。我正在获得这样的个人资料

profile = CamcorderProfile.get(CamcorderProfile.QUALITY_1080P);

因为没有声音可以设置CamcorderProfile,你需要逐个设置每个值。

希望这会有所帮助:)