当stop()方法调用时,MediaPlayer不会停止播放

时间:2015-05-01 07:04:11

标签: android sharedpreferences android-mediaplayer alarmmanager android-preferences

您好我正在创建一个警报,我已经使用RingtonePreference选择alarmtone.So当用户选择他的铃声时,它将保存在共享首选项中,我可以使用所选铃声创建一个uri。

我的应用程序在闹钟响铃窗口中有一个停止按钮。当闹铃响起时,我想在我点击停止按钮时停止媒体播放器。我在这里使用的代码是 player.stop(); player.release( ); 我的问题是即使我点击停止按钮也不会停止播放。请帮助我。我的完整代码显示如下。

停止按钮代码

try
        {
            if(mp.isPlaying())
                mp.stop();

            mp.reset();//It requires again setDataSource for player object.
            mp.release();
            mp=null; // fixed typo.
        }
        catch(IllegalStateException e)
        {
            e.printStackTrace();
        }

从共享偏好中读取所选铃声并使用Mediaplayer设置播放的代码

  //reading preference value 
        SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(this)
        String alarms = preferences.getString(getResources().getString(R.string.key_ringpref),"default ringtone");
        soundUri = Uri.parse(alarms);
        mp=MediaPlayer.create(getBaseContext(),soundUri);
        mp.setOnErrorListener(this);
        try 
        {
            mp.prepare();
            mp.setLooping(true);
        } catch (IllegalStateException e1) 
        {
            e1.printStackTrace();
        } catch (IOException e1)
        {
            e1.printStackTrace();
        }
      mp.start();

0 个答案:

没有答案