如何以编程方式暂停音乐播放器

时间:2012-11-22 18:18:23

标签: android

我在我的应用程序中使用了MUSIC_PLAYER,如下所示:

Intent myint = new Intent("android.intent.action.MUSIC_PLAYER");
startActivity(myint);

我想暂停这个播放器。我该怎么做?

import android.media.AudioManager;

import android.media.MediaPlayer;

import android.os.Bundle;

import android.app.Activity;

import android.content.Intent;

import android.view.Menu;

public class MainActivity extends Activity {

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        Thread mtr = new Thread(){
            public void run()
            {
                try {
                    Intent myint = new Intent("android.intent.action.MUSIC_PLAYER");
                    startActivity(myint);
                    sleep(50000);
                    // Here I want to pause my application after those 50 seconds.
                }
                catch(InterruptedException e){
                    e.printStackTrace();
                }
                finally{
                    Intent myint = new Intent("nextscreen");
                    startActivity(myint);
                }
            }
        };
        mtr.start();
    }
}

3 个答案:

答案 0 :(得分:4)

Samsung设备中,您可以使用以下意图控制音乐播放器:

ICS:
"com.android.music.musicservicecommand.play"
"com.android.music.musicservicecommand.pause"
"com.android.music.musicservicecommand.next"
...

JB:
"com.sec.android.app.music.musicservicecommand.play"
"com.sec.android.app.music.musicservicecommand.pause"
"com.sec.android.app.music.musicservicecommand.next"
...

context.sendBroadcast(new Intent("com.sec.android.app.music.musicservicecommand.pause"));

另一个解决方案是AudioManager中的requestAudioFocus(不要忘记使用abandonAudioFocus释放它)。例如:

...
((AudioManager)getSystemService(Context.AUDIO_SERVICE)).requestAudioFocus(listener, AudioManager.STREAM_MUSIC, AudioManager.AUDIOFOCUS_GAIN_TRANSIENT);
...

...
((AudioManager)getSystemService(Context.AUDIO_SERVICE)).abandonAudioFocus(listener);
...

答案 1 :(得分:3)

你做不到。暂停音乐播放器是应用程序内部专门为用户提供的内部操作,因此无法从应用程序外部访问/调用它。

但是,您可以通过调用setStreamMute(AudioManager.STREAM_MUSIC, true)使用AudioManager课程将音乐音频流静音。

代码示例:

AudioManager am = (AudioManager)MainActivity.this.getSystemService(Context.AUDIO_SERVICE);
am.setStreamMute(AudioManager.STREAM_MUSIC, true);

答案 2 :(得分:1)

请参阅答案here,您可以发送广播来暂停或停止默认音乐播放器。