【问题标题】:Play 2 audio files in same activity在同一活动中播放 2 个音频文件
【发布时间】:2013-07-03 08:17:46
【问题描述】:
MediaPlayer instrumental = new MediaPlayer();
MediaPlayer vocal = new MediaPlayer();

当我点击按钮播放时,我需要这 2 个对象独立工作。

这 2 个实例应该分开播放。

人声应该有自己的进度条,它会在不影响乐器音量的情况下指示其音频的音量。

将此问题想象为运行两个具有不同音量控制的音频。

【问题讨论】:

  • 你能补充你的问题吗?
  • ahm 我正在尝试将乐器与人声一起演奏。但在人声中。我应该通过进度条控制它的音量。

标签: android audio media-player


【解决方案1】:

您可以使用它的 setVolume() 方法控制 MediaPlayer 的音频。示例:

MediaPlayer mp = new MediaPlayer();
...
mp.setVolume(1, 1);

参数用于左右声音。要修改这些值,请尝试计算本文中提到的值:https://stackoverflow.com/a/12075910/582083

【讨论】:

    【解决方案2】:

    这可以通过在您的 MediaPlayer 实例上设置单独的音频流类型来完成。我不知道这是否会产生任何意想不到的后果,我猜你应该使用STREAM_MUSIC 来播放音乐……但它确实有效。

    seek1 = (SeekBar) findViewById(R.id.seek1);
    seek2 = (SeekBar) findViewById(R.id.seek2);
    
    seek1.setOnSeekBarChangeListener(this);
    seek2.setOnSeekBarChangeListener(this);
    
    am = (AudioManager) getSystemService(Context.AUDIO_SERVICE);
    
    seek1.setMax(am.getStreamMaxVolume(AudioManager.STREAM_MUSIC));
    seek2.setProgress(am.getStreamMaxVolume(AudioManager.STREAM_VOICE_CALL));
    
    // Set up your MediaPlayers
    // Call the following lines before onPrepare()
    
    instrumental.setAudioStreamType(AudioManager.STREAM_MUSIC);
    vocal.setAudioStreamType(AudioManager.STREAM_VOICE_CALL);
    

    稍后在你的onSeekBarChangeListener

    @Override
    public void onStopTrackingTouch(SeekBar seekBar) {
        if (seekBar.equals(seek1)) {
            am.setStreamVolume(AudioManager.STREAM_MUSIC, seekBar.getProgress(), 0);
        }
        else {
            am.setStreamVolume(AudioManager.STREAM_VOICE_CALL, seekBar.getProgress(), 0);
        }
    
    }
    

    【讨论】:

    • 感谢肯先生,但我要做的是调整声音的音量,这是资产中的另一个音频文件。
    • 这样就可以了。我现在可以在我的手机上使用它。带有来自资产的 2 个音频文件。和 2 个滑块控制 2 个单独的流。你试过了吗?有什么问题?
    • 使用 AudioManager.STREAM_VOICE_CALL 是否安全?因为连同这个问题,我有一个录音功能,可以录制我的声音。在播放这两个音频时。
    • 据我所知它是安全的。我不知道你还能如何控制 2 个不同的音量流。您将需要不同的流。你可以试试不同的。警报等
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-01-28
    • 2022-10-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多