2014-01-20 144 views
0

当我点击开始按钮报警开始时,当我点击停止,它停止,但当我再次点击开始时,报警将无法启动。请帮助我。下面的代码:报警按钮点击

public class alarm : Activity 
{ 
    protected MediaPlayer _player; 
    protected override void OnCreate (Bundle bundle) 
    { 
     _player = MediaPlayer.Create (this,Resource.Raw.police_alarm); 
     base.OnCreate (bundle); 
     SetContentView (Resource.Layout.alarm); 
     Button start = FindViewById<Button> (Resource.Id.Start_ALarm); 
     start.Click += delegate { 
      _player.Start(); 


     }; 
     Button stop = FindViewById<Button> (Resource.Id.Stop_ALarm); 
     stop.Click += delegate { 
      _player.Stop(); 
     }; 
     // FindViewById<TextView> (Resource.Id.Start_ALarm).Click+=Start_alarm_click; 
     //FindViewById<TextView> (Resource.Id.Stop_ALarm).Click += Stop_alarm_click; 

     // Create your application here 
    } 
    //FindViewById<TextView> (Resource.Id.Start_ALarm).Click+=Start_alarm_click; 
    public void Start_alarm_click(object sender, EventArgs eventArgs) 
    { 
     _player.Start(); 

    } 
    public void Stop_alarm_click(object sender, EventArgs eventArgs) 
    { 
     _player.Stop(); 
    } 

} 

回答

0

documentation:在停止状态

一次,播放不能启动,直到准备() 或prepareAsync()被调用的MediaPlayer对象设置为 再次准备状态。

这表明在尝试启动它之前,你应该叫

_player.prepare(); 

0

初始化MediaPlayer应该在onCreate方法之前完成。否则当你点击停止播放器对象变为null时。因此你可以在声明的地方初始化它,代码如下: _player = MediaPlayer.Create(this ,Resource.Raw.police_alarm);