1

在一项活动中,我使用两个媒体播放器播放不同的声音,如果播放两种声音并且按下后退按钮没有问题,它工作正常。媒体播放器停止并释放。(mp 设置为循环播放,mps 只播放短声)

@Override
protected void onPause() {
    // TODO Auto-generated method stub
    mp.stop();
    super.onPause();
}
@Override
protected void onStop() {
    // TODO Auto-generated method stub
    mp.release();
    mps.release();
    super.onStop();
}

但是,如果没有播放一个和/或两个声音,我会在按下后退按钮时强制关闭并且出现空指针异常。您将如何编写代码来检查媒体播放器是否曾经被使用过,因此需要停止并释放它们?

4

2 回答 2

0

如果有播放,您可以使用计数并在其上加一,然后检查它是否等于 0。

于 2012-03-08T17:04:20.253 回答
0

如果你在 onPause 和 onStop 中得到一个空指针,你需要检查 mp 是否为空。

@Override
protected void onPause() {
    if (mp != null)
      mp.stop();
    super.onPause();
}
@Override
protected void onStop() {
   if (mp != null)
    mp.release();
   if (mps != null)
    mps.release();

    super.onStop();
}

如果您愿意,您可以保持计数,但这意味着当您已经可以访问所需的变量时要跟踪另一个变量

于 2012-03-08T17:07:56.180 回答