Java 当我从另一个类打开时,Android MediaPlayer会播放两次
我想在android中制作一个mediaplayer,但有一个错误。 我有两个活动(FileBrowser和MainActivity(带播放器))。 在文件浏览器中单击列表项时,我将发送文件路径 去我的主要活动课Java 当我从另一个类打开时,Android MediaPlayer会播放两次,java,android,Java,Android,我想在android中制作一个mediaplayer,但有一个错误。 我有两个活动(FileBrowser和MainActivity(带播放器))。 在文件浏览器中单击列表项时,我将发送文件路径 去我的主要活动课 private OnItemClickListener musicgridlistener = new OnItemClickListener() { public void onItemClick(AdapterView parent, View v, int positio
private OnItemClickListener musicgridlistener = new OnItemClickListener() {
public void onItemClick(AdapterView parent, View v, int position,
long id) {
System.gc();
music_column_index = musiccursor
.getColumnIndexOrThrow(Audio.Media.DATA);
musiccursor.moveToPosition(position);
String filename = musiccursor.getString(music_column_index);
Uri path = Uri.parse(filename);
Player.initMusicPlayer(path);
finish();
}
};
我在MainActivity.class的“initMusicLayer”方法中收到了路径
public void initMusicPlayer(Uri filename){
player = new MediaPlayer();
playFile(filename);
}
“播放文件”方法:
“停止铺设”方法:
当我现在用新路径调用“initMusicPlayer”时,播放器会启动新文件,但旧文件不会停止
感谢您的帮助。如果在调用playFile()之前调用stopPlaying()方法,会发生什么情况?相同的错误。。播放机启动两次或更多。您如何将url传递给mainactivity?如果在调用player.stop();)之后(player.isPlaying()){player.stop();},您是否检查了以下循环是否仍然处于活动状态?
public void playFile(Uri filename){
Log.i("Filename: ", filename.toString());
stopPlaying();
player = MediaPlayer.create(MainActivity.this,filename);
player.start();
}
private void stopPlaying() {
if (player != null){
player.stop();
player.release();
player = null;
}
}