调用 MediaPlayer 的停止方法后无法再次启动 MediaPlayer
can't start the MediaPlayer again after stop method of MediaPlayeris called
在这个应用程序中,我有 2 个按钮,一个用于启动媒体播放器,另一个用于停止媒体播放器,但在我的情况下,stat 和 stop 工作正常。
单击停止按钮后我无法启动媒体播放器,而且我得到
start called in state 0, mPlayer(0x9f5d8300)
error (-38, 0)
我尝试了一些来自 Whosebug 的解决方案,但没有任何帮助。
编码:
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mStop = (Button) findViewById(R.id.mStop);
mStart = (Button) findViewById(R.id.mStart);
final MediaPlayer player = MediaPlayer.create(this, R.raw.alarmsong);
mStart.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
player.start();
player.setLooping(true);
player.setVolume(100, 100);
}
});
mStop.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
player.stop();
}
});
}
谁能帮我解决一下。
你需要做
player.release();
停止媒体播放器后
如果我阅读文档,他们说您需要调用 prepare() 方法来重置您的播放器。
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mStop = (Button) findViewById(R.id.mStop);
mStart = (Button) findViewById(R.id.mStart);
final MediaPlayer player = MediaPlayer.create(this, R.raw.alarmsong);
mStart.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
player.start();
player.setLooping(true);
player.setVolume(100, 100);
}
});
mStop.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
player.stop();
player.prepare();
}
});
}
在这个应用程序中,我有 2 个按钮,一个用于启动媒体播放器,另一个用于停止媒体播放器,但在我的情况下,stat 和 stop 工作正常。
单击停止按钮后我无法启动媒体播放器,而且我得到
start called in state 0, mPlayer(0x9f5d8300)
error (-38, 0)
我尝试了一些来自 Whosebug 的解决方案,但没有任何帮助。
编码:
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mStop = (Button) findViewById(R.id.mStop);
mStart = (Button) findViewById(R.id.mStart);
final MediaPlayer player = MediaPlayer.create(this, R.raw.alarmsong);
mStart.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
player.start();
player.setLooping(true);
player.setVolume(100, 100);
}
});
mStop.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
player.stop();
}
});
}
谁能帮我解决一下。
你需要做
player.release();
停止媒体播放器后
如果我阅读文档,他们说您需要调用 prepare() 方法来重置您的播放器。
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mStop = (Button) findViewById(R.id.mStop);
mStart = (Button) findViewById(R.id.mStart);
final MediaPlayer player = MediaPlayer.create(this, R.raw.alarmsong);
mStart.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
player.start();
player.setLooping(true);
player.setVolume(100, 100);
}
});
mStop.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
player.stop();
player.prepare();
}
});
}