java - 媒体播放器给我空指针异常

标签 java android media-player volume android-audiomanager

我希望我的代码在按下按钮时以最大音量播放声音文件。我的代码仅播放声音文件就可以正常工作,但是当我输入 originalVolume

int originalVolume = mAudioManager
                        .getStreamVolume(AudioManager.STREAM_MUSIC);
                mAudioManager.setStreamVolume(AudioManager.STREAM_MUSIC,
                        mAudioManager
                                .getStreamMaxVolume(AudioManager.STREAM_MUSIC),
                        0);

单击按钮后我的程序崩溃了。

public class VolumeUp extends Activity {
    TextView text;
    int counter = 0;
    private AudioManager mAudioManager;
    MediaPlayer mediaPlayer = null;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        text = (TextView) findViewById(R.id.hello);

        text.setOnClickListener(new OnClickListener() {
            public void onClick(View view) {
                int originalVolume = mAudioManager
                        .getStreamVolume(AudioManager.STREAM_MUSIC);
                mAudioManager.setStreamVolume(AudioManager.STREAM_MUSIC,
                        mAudioManager
                                .getStreamMaxVolume(AudioManager.STREAM_MUSIC),
                        0);

                mediaPlayer = MediaPlayer.create(VolumeUp.this,
                        R.raw.policesiren);
                mediaPlayer.setScreenOnWhilePlaying(true);
                mediaPlayer.setLooping(true);// we set the sound to loop.
                mAudioManager.setStreamVolume(AudioManager.STREAM_MUSIC,
                        originalVolume, 0);
                mediaPlayer.start();

            }
        });

    }

最佳答案

从上面显示的代码中,mAudioManager 始终为 null。所以你得到 NPE 的原因很明显。

你忘记了这一行:

mAudioManager = (AudioManager) getSystemService(Context.AUDIO_SERVICE);

关于java - 媒体播放器给我空指针异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21124873/

相关文章:

c# - WP7 上的 MediaPlayerLauncher - 如何恢复之前播放的媒体?

android - 在 MediaPlayer 中显示内部字幕

java - 动态创建 JLabel

android - 添加 fragment 而不保存到历史堆栈?

android - 收听 Intent ACTION_VIEW 的 Activity

安卓调试

android - 按歌曲获取封面图片

java - 如何在客户端使用 Java 读取 gRPC 中的元数据

Java,SocketChannel选择器,将写 channel 与阻塞队列结合起来

java - 复选框数据未在其他 Activity 中传递