2014-01-24 84 views
1

我是新来的android编程。我有一个mp3文件正在播放,但当按下退出按钮退出程序时,它不会停止播放。我在全球有MediaPlayer,不应该在后面的密钥代码中找到它吗?任何帮助赞赏。无法停止播放MP3文件

public class JabberWockyActivity extends Activity { 
WebView myWebView; 
Button button1; 
Button button2; 
MediaPlayer mpAudio; 


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

    mpAudio=MediaPlayer.create(this, R.raw.yah3); 
    mpAudio.start(); 
    mpAudio.setLooping(true);  

    myWebView = (WebView) findViewById(R.id.webView1); 
    myWebView.getSettings().setBuiltInZoomControls(true); 
    myWebView.getSettings().setJavaScriptEnabled(true); 

    myWebView.loadUrl("http://www.jabberwocky.com/carroll/jabber/jabberwocky.html"); 




    button1 = (Button)this.findViewById(R.id.button1); 
    button1.setOnClickListener(new OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      Intent browserIntent = new Intent(Intent.ACTION_VIEW, Uri 
        .parse("https://en.wikipedia.org/wiki/Jabberwocky")); 
      startActivity(browserIntent); 
     } 
    }); 


    button2 = (Button)this.findViewById(R.id.button2); 
    button2.setOnClickListener(new OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      Intent browserIntent = new Intent(Intent.ACTION_VIEW, Uri 
       .parse("http://goodvibeblog.com/wp-content/uploads/2010/06/jabberwocky2.jpg")); 
     startActivity(browserIntent); 
    } 
}); 

}

@Override 
public boolean onCreateOptionsMenu(Menu menu) { 
    // Inflate the menu; this adds items to the action bar if it is present. 
    getMenuInflater().inflate(R.menu.jabber_wocky, menu); 
    return true; 
} 

@Override 
public boolean onKeyDown(int keyCode, KeyEvent event) { 
    // Check if the key event was the Back button and if there's history 
    if ((keyCode == KeyEvent.KEYCODE_BACK) && myWebView.canGoBack()) { 
     mpAudio.stop(); 
     myWebView.goBack(); 
     return true; 

    } 
    // If it wasn't the Back key or there's no web page history, bubble up to the default 
    // system behavior (probably exit the activity) 
    return super.onKeyDown(keyCode, event); 
} 

}

+0

它应该,你确保你的onKeyDown被实际调用吗?因为它取决于webviews canGoBack的结果。 –

回答

1

可以拨打的OnDestroy()方法释放()。

@Override 
    public void onDestroy(){ 
    super.onDestroy(); 
     mp.release(); 
    } 
+1

这样做。谢谢。这是伟大的网站,并享受Android的Java。再次感谢。 – flb2

+0

我只有8的评级。我需要15才能投票。我是一个真正的新手。 – flb2

+0

现在,你有它! :) – thestar