我尝试了很多不同的方法,但似乎都没有。这种方法没有错误,但什么也没做。我将所有声音放在我主项目下的子目录中。我尝试过的大多数代码都是不同的方式,比如MediaPlayer和SoundPooling。他们都没有为我工作,所以我尝试了这个。如果有人能为我纠正这个问题或者让我参加一个教程,那就太好了。
package me.javoris767.twds2soundboard;
import java.io.IOException;
import me.javoris767.twds2soundboard.R;
import android.view.View;
import android.app.Activity;
import android.content.res.AssetFileDescriptor;
import android.media.MediaPlayer;
import android.os.Bundle;
public class ClementinePage extends Activity {
MediaPlayer mp=new MediaPlayer();
public boolean isPlaying;
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.fragment_clementine_page);
}
public void playSound(String file) {
AssetFileDescriptor afd = null;
try {
afd = getAssets().openFd(file);
MediaPlayer player = new MediaPlayer();
player.setDataSource(afd.getFileDescriptor(), afd.getStartOffset(),
afd.getLength());
player.setOnPreparedListener(new MediaPlayer.OnPreparedListener() {
public void onPrepared(MediaPlayer p1) {
p1.start();
isPlaying = true;
}
});
}catch (IOException e) {
e.printStackTrace();
}
}
public void onNoClick(View v) {
playSound("sounds/ohno.mp3");
}
}
答案 0 :(得分:0)
做这样的事情
//initialising the two new buttons
final Button btSong1 = (Button)findViewById(R.id.btnPlaySong1);
final Button btSong2 = (Button)findViewById(R.id.btnPlaySong2);
//initialising the two new media player instances
song1 = new MediaPlayer();
song1 = MediaPlayer.create(this, R.raw.song3);
song2 = new MediaPlayer();
song2 = MediaPlayer.create(this, R.raw.song4);
//The code for the two buttons go here
btSong1.setOnClickListener(new OnClickListener(){
public void onClick(View v){
//This is where your code will go
switch(stateOfPlaying){
case 0:
song1.start();
stateOfPlaying = 1;
btSong1.setText("Pause Song 1");
btSong2.setVisibility(View.INVISIBLE);
break;
case 1:
song1.pause();
stateOfPlaying = 0;
btSong1.setText("Play Song 1");
btSong2.setVisibility(View.VISIBLE);
break;
}//switch
}//end of onClick
});//btSong1
btSong2.setOnClickListener(new OnClickListener(){
public void onClick(View v){
//This is where your code will go
switch(stateOfPlaying){
case 0:
song2.start();
stateOfPlaying = 1;
btSong2.setText("Pause Song 2");
btSong1.setVisibility(View.INVISIBLE);
break;
case 1:
song2.pause();
stateOfPlaying = 0;
btSong2.setText("Play Song 2");
btSong1.setVisibility(View.VISIBLE);
break;
}//switch
}//end of onClick
});//btSong2
答案 1 :(得分:0)
我建议不要在Android中使用MP3文件,因为它似乎更好地处理OGG。你能做到吗?