我在使用MediaPlayer.setVolume调节声音的时候, 不起作用. 我是这样使用的
MediaPlayer mp = MediaPlayer.create(context, R.raw.recv);
mp.setAudioStreamType(AudioManager.STREAM_MUSIC);
int maxVolume = mAudioManager.getStreamMaxVolume(AudioManager.STREAM_MUSIC);
mp.setVolume(maxVolume * mLastProgress / 10, maxVolume * mLastProgress / 10);
[其中mLastProgress 是0到10可以调节的值]
用下面的方法是可以的:
AudioManager mAudioManager = (AudioManager) context.getSystemService(Context.AUDIO_SERVICE);
mAudioManager.setStreamVolume(AudioManager.STREAM_MUSIC, maxVolume * mLastProgress / 10, 0);
是不是我用的不对啊. 我想控制我程序的声音大小, 上面第二种改变了系统的, 我不想改变系统的

解决方案 »

  1.   

    后面那种方法是对的。 不过我不知道你为什么说你改变的是系统音量??按照文档上的定义:    136     /** The audio stream for system sounds */
        137     public static final int STREAM_SYSTEM = AudioSystem.STREAM_SYSTEM;
        138     /** The audio stream for the phone ring */
        139     public static final int STREAM_RING = AudioSystem.STREAM_RING;
        140     /** The audio stream for music playback */
        141     public static final int STREAM_MUSIC = AudioSystem.STREAM_MUSIC;你使用的参数是正确的,在我们项目的代码里面也是这么用的, 没问题
      

  2.   

    MediaPlay.setValume这个函数我用过,是有用的  只是我也不知道参数范围到底是多少 SDK没写
    楼主有没有打log看下 maxVolume 和maxVolume * mLastProgress / 10的值是多少 对不对
      

  3.   

    还是用用系统的AudioManager.STREAM_MUSIC,不过退出时记住还原
      

  4.   

    复于:2010-01-27 22:20:06
    还是用用系统的AudioManager.STREAM_MUSIC,不过退出时记住还原怎么还原????
      

  5.   

    要在play后调整音量,哥整了半天
      

  6.   

    这个正解。
    Android这么整太怪异。