【问题标题】:MediaPlayer played sound twice in onCreate methodMediaPlayer 在 onCreate 方法中播放了两次声音
【发布时间】:2016-10-29 22:45:03
【问题描述】:

MediaPlayer 在 onCreate 方法中播放了两次声音

@Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

if(mediaPlayer.isPlaying())
        {
            mediaPlayer.stop();
        }

        mediaPlayer.reset();
        mediaPlayer = MediaPlayer.create(MainActivity.this, R.raw.v1);
        mediaPlayer.start();

    }

当 onCreate 方法启动时,声音播放了两次。如何解决?

【问题讨论】:

  • 可能是你的代码中的几个activity实例?
  • @IllyaBublyk,所有代码都是什么 n onCreate 方法。

标签: android android-mediaplayer


【解决方案1】:

onCreate启动声音的正确方法:

MediaPlayer mPlayer;
public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        mPlayer = MediaPlayer.create(FakeCallScreen.this, R.raw.v1);
        mPlayer.start();
    }

然后在销毁时停止它:

@Override
public void onDestroy() {
    mPlayer.stop();
    super.onDestroy();
}

【讨论】:

  • oO 这行得通,但没有两次调用 onDestroy 声音。为什么?
  • 回答这个问题不是那么容易..这取决于活动经历..例如:旋转设备,打开键盘可能导致重新创建活动。通常系统会在设备配置更改时重新创建活动..如果您提供代码..我们可以提供更好的帮助。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-01-06
  • 1970-01-01
  • 1970-01-01
  • 2015-03-03
相关资源
最近更新 更多