停止媒体播放器

问题描述:

我是新的android和我有另一个(简单?)的问题。我不知道如何阻止媒体播放器。这是我的简单代码:停止媒体播放器

public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.view); 
     MediaPlayer mp; 
     mp = MediaPlayer.create(this, R.raw.sauronsound); 
     mp.setLooping(false); 
     mp.start(); 
    @Override 
    protected void onDestroy() 
{ 

    // Stop play 
     super.onDestroy(); 
     mp.stop(); 
    } 
     } 

按下后退按钮应用程序进入我的第一个活动,但声音已打开。当我离开一个应用程序它也是。我应该怎么做才能关闭声音?

一如既往地因为我可怜的英语。

我解决了这个问题,谢谢你们。工作代码:

public class SauronEye extends Activity { 
    private MediaPlayer mp; 
    @Override 
     public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.view); 
     mp = MediaPlayer.create(this, R.raw.sound); 
     mp.setLooping(false); 
     mp.start(); 


    // Get instance of Vibrator from current Context 
     Vibrator v = (Vibrator) getSystemService(Context.VIBRATOR_SERVICE); 
     v.vibrate(10000); 
     } 
@Override 
    protected void onStop() 
{ 
    // Stop play 
    super.onStop(); 
    mp.stop(); 
} 
    } 

它是否正确(它的工作原理)?感谢你们对我的帮助。

检查了这一点http://developer.android.com/reference/android/media/MediaPlayer.html 可以调用停止或根据您的requirement.When您选择后退按钮您的onPause将被称为暂停,该方法可以调用mp.stop()的onDestroy将只有当活动被称为被完全销毁

mp您在onDestroy上使用的引用与您在onCreate上使用的引用不同。将MediaPlayer mp;行移到onCreate类之外。

+0

谢谢:)你是正确的... – jundymek

只有当系统终止活动时才会调用onDestroy。你不应该把它放在onDestroy上,你应该把它放在onPause()中,这就是当你的活动移动到后台但仍保留在内存中时所谓的。 (这是被压或退出应用后退按钮会发生什么)

@Override 
protected void onPause() { 
    super.onPause(); 
    mp.stop(); 
} 
+0

当您按下后退按钮,'onDestroy' **确实被称为**。 – Cristian

可以调用覆盖真正实现了轻松的源代码,并将其添加每一个到你的代码。所有你需要做的就是右键点击你想要的插入点,然后点击Source-> Override/Implement Methods。它会弹出一个对话框,你点击你需要的方法,尝试使用ondestroy,onpause,onstop。对于你的代码,并且在它实现它们之后,只需在每个代码中添加以下内容。

protected void onDestroy{ 
     super.onDestroy(); 
     mp.release(); 
    } 

    protected void onStop{ 
     super.onStop(); 
     mp.stop(); 
    } 

    protected void onPause{ 
     super.onPause(); 
     mp.pause(); 
    } 

另外如果你想多一点与您soundcodes你可以试试这个链接 stealthcopters link或者你可以试试这个视频系列 cornboyzAndroid