gpt4 book ai didi

java - 每次单击按钮时播放音频

转载 作者:行者123 更新时间:2023-11-30 02:22:48 25 4
gpt4 key购买 nike

我的项目有 2 个音频文件,“dog.mp3”和“cat.mp3”,因此下面的代码使我能够根据特定的 ListView 项点击播放任何一种声音,但是我如何修改代码以便我想要实现以下目标?:

  • 当“cat.mp3”正在播放时,如果我点击“dog.mp3”的 ListView 项,我希望“cat.mp3”文件停止播放并播放“dog.mp3”音频。
  • 当“dog.mp3”正在播放时,如果我点击“cat.mp3”的 ListView 项,我希望“dog.mp3”文件停止播放并播放“cat.mp3”音频。

我们将不胜感激。

mainList.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> adapterView, View view, int position, long id) {
if (position == 0) {
mp = MediaPlayer.create(Test.this, R.raw.cat);
mp.start();
}

if (position == 1) {
mp = MediaPlayer.create(Test.this, R.raw.dog);
mp.start();
}
}
});

错误

import android.media.MediaPlayer;
import android.os.Bundle;
import android.support.v7.app.ActionBarActivity;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.ListView;


public class MainActivity extends ActionBarActivity {

ListView mainList;

String[] listContent = {
"chimes", "chord", "ding",
"notify", "recycle", "ringin",
"ringout", "tada"
};

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

mainList = (ListView)findViewById(R.id.main_listView);
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1,listContent);
mainList.setAdapter(adapter);

int[] resID = { R.raw.chimes, R.raw.chord, R.raw.ding,
R.raw.notify, R.raw.recycle, R.raw.ringin, R.raw.ringout, R.raw.tada };

mainList.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> adapterView, View view, int position, long id) {
playSong(position);

}
});


public void playSong(int songIndex) {
// Play song
mp.reset();
mp.setDataSource(resID[songIndex]);

mp.start();
mp.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {

@Override
public void onCompletion(MediaPlayer mp) {
// TODO Auto-generated method stub
mp.release();
}
});
}
}
}

error

最佳答案

import android.app.Activity;
import android.media.MediaPlayer;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.ListView;

public class MainActivity extends Activity {

// variable declaration
private ListView mainList;
private MediaPlayer mp;
private final String[] listContent = { "chimes", "chord", "ding", "notify",
"recycle", "ringin", "ringout", "tada" };

private final int[] resID = { R.raw.chimes, R.raw.chord, R.raw.ding,
R.raw.notify, R.raw.recycle, R.raw.ringin, R.raw.ringout,
R.raw.tada };

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// Initializing variables
mp = new MediaPlayer();
mainList = (ListView) findViewById(R.id.main_listView);
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,
android.R.layout.simple_list_item_1, listContent);
mainList.setAdapter(adapter);

mainList.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> adapterView, View view,
int position, long id) {
playSong(position);

}
});

}

public void playSong(int songIndex) {
// Play song
mp.reset();// stops any current playing song
mp = MediaPlayer.create(getApplicationContext(), resID[songIndex]);// create's
// new
// mediaplayer
// with
// song.
// if you don't know what is getApplicationContext() here better use
// MainActivity.this or yourclassname.this
mp.start(); // starting mediaplayer
// setting up what to do if current song completes.
/*
* mp.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {
*
* @Override public void onCompletion(MediaPlayer mp) { // TODO
* Auto-generated method stub
*
* } });
*/
}

@Override
public void onDestroy() {
super.onDestroy();
mp.release();
}
}

关于java - 每次单击按钮时播放音频,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28261425/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com