2014-01-24 86 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