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

Din*_*rma 3 android video-recording mediarecorder android-mediarecorder

我正在尝试使用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)
Run Code Online (Sandbox Code Playgroud)

但他们都没有为我工作.

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

谢谢 !!!

cyr*_*ial 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); 
  }
Run Code Online (Sandbox Code Playgroud)

只是不要设置audiosource.我得到这样的个人资料

profile = CamcorderProfile.get(CamcorderProfile.QUALITY_1080P);
Run Code Online (Sandbox Code Playgroud)

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

希望这会有所帮助:)