这很奇怪,但这是我的项目要求。在我的项目中,我想播放带有音频抑制功能的视频。对于音频,我们有另一个计划。所以我可以使用VideoView播放视频。但这也播放该文件的音频(这对我来说不是必需的)。那么我怎样才能达到这个奇怪的要求,即播放没有音频的视频。 http://developer.android.com/reference/android/widget/VideoView.html
答案 0 :(得分:3)
在我看来,最好的方法是在视频准备就绪时将音量设置为0。我发现的所有其他解决方案都暗示使用不推荐使用的API可以使整个系统静音。
这是一个简单的解决方案
VideoView videoPreview = (VideoView) findViewById(R.id.video_view);
videoPreview.setOnPreparedListener(
new MediaPlayer.OnPreparedListener()
{
@Override
public void onPrepared(MediaPlayer mp)
{
mp.setVolume(0f, 0f);
}
}
);
答案 1 :(得分:1)
此链接 Supplying option to user to play video with or without audio帮助我将视频的声音静音。然后通过使用MediaExtractor,AudioTrack API,我可以从文件中提取音频样本,然后我可以使用AudioTrack对象播放这些提取的样本。我必须采取的预防措施是在创建AudioTrack对象时使用AudioManager.STREAM_RING
audioTrack= new AudioTrack(AudioManager.STREAM_RING, 44100, AudioFormat.CHANNEL_OUT_STEREO, AudioFormat.ENCODING_PCM_16BIT, 44100, AudioTrack.MODE_STREAM);
所以videoView播放我的视频,但我听不到音频,因为STREAM_MUSIC处于静音状态,audioTrack对象分别播放我的音频。