&引用;“完美”;代码,无输出Android(Eclipse)音板
我正试图为我3岁的孩子制作一个简单的音板,但遇到了相当大的困难,我认为我已经找到了编写音板的最佳方法,但当点击按钮时遇到了一个问题,什么都没有发生&引用;“完美”;代码,无输出Android(Eclipse)音板,android,eclipse,media-player,Android,Eclipse,Media Player,我正试图为我3岁的孩子制作一个简单的音板,但遇到了相当大的困难,我认为我已经找到了编写音板的最佳方法,但当点击按钮时遇到了一个问题,什么都没有发生 mp = MediaPlayer.create(this, R.raw.ursoundboardtrack); mp.setAudioStreamType(AudioManager.USE_DEFAULT_STREAM_TYPE); mp.prepare(); mp.start(); 代码是干净的,没有错误的迹象,所以我束手无策 mp = Medi
mp = MediaPlayer.create(this, R.raw.ursoundboardtrack);
mp.setAudioStreamType(AudioManager.USE_DEFAULT_STREAM_TYPE);
mp.prepare();
mp.start();
代码是干净的,没有错误的迹象,所以我束手无策
mp = MediaPlayer.create(this, R.raw.ursoundboardtrack);
mp.setAudioStreamType(AudioManager.USE_DEFAULT_STREAM_TYPE);
mp.prepare();
mp.start();
非常感谢你的帮助
public class Player extends Activity implements OnClickListener {
MediaPlayer mp;
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button Button1 = (Button)findViewById(R.id.Button1);
Button1.setOnClickListener(this);
}
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
mp = MediaPlayer.create(this, R.raw.splashsound);
mp.start();
while (mp.isPlaying()){
};
mp.release();
}
};
mp = MediaPlayer.create(this, R.raw.ursoundboardtrack);
mp.setAudioStreamType(AudioManager.USE_DEFAULT_STREAM_TYPE);
mp.prepare();
mp.start();
您需要使用
mp = MediaPlayer.create(this, R.raw.ursoundboardtrack);
mp.setAudioStreamType(AudioManager.USE_DEFAULT_STREAM_TYPE);
mp.prepare();
mp.start();
您是否已确保splashsound的格式为
.wav
mp = MediaPlayer.create(this, R.raw.ursoundboardtrack);
mp.setAudioStreamType(AudioManager.USE_DEFAULT_STREAM_TYPE);
mp.prepare();
mp.start();
如果不是,则此应用程序将永远无法工作,因为它需要采用.wav格式,而不是.mp3或.wma或任何其他类型的音频格式。它必须采用.wav
格式
mp = MediaPlayer.create(this, R.raw.ursoundboardtrack);
mp.setAudioStreamType(AudioManager.USE_DEFAULT_STREAM_TYPE);
mp.prepare();
mp.start();
如果您的splashsound是另一种音频格式,但是
.wav
,那么您必须将其转换为.wav
,然后将其导入到您的项目中,并删除旧的格式,希望它能正常工作:)您调试了吗?它是否执行onClick
方法?您正在onClick
中阻塞主线程。。。删除此代码:while(mp.isPlaying()){};mp.release()代码>你应该找到更好的地方发布MediaPlayer。。。其中是mp.prepare()代码>?按下按钮时是否正在注册单击?@Selvin无需使用prepare()
您可以在不使用mp.prepare()
的情况下播放音频,while循环将阻止UI线程。在我删除的帖子中,它是context
而不是content
它只是一个打字错误。当我复制并粘贴它们时,他的代码工作得很好。这是同一个context=>Player类实例(在onClick中,这意味着Player活动,而v.getActivity()==这)。。。和while(mp.isPlaying()){}onClick中的代码不好,这可能会导致ANRI想到的不是.wav,对不起,这是错误的。wav是MediaPlayera唯一可以使用的格式。你可以告诉我,我对Android/编程非常陌生。我保留了最初发布的代码,但将声音文件更改为.wav,但按下按钮时仍然没有声音?检查退出MediaPlayer.setOneErrorListener()方法。创建一个简单的侦听器,将错误消息打印到日志中,因为音频播放可能失败的原因有很多。
mp = MediaPlayer.create(this, R.raw.ursoundboardtrack);
mp.setAudioStreamType(AudioManager.USE_DEFAULT_STREAM_TYPE);
mp.prepare();
mp.start();