&引用;“完美”;代码,无输出Android(Eclipse)音板

&引用;“完美”;代码,无输出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

我正试图为我3岁的孩子制作一个简单的音板,但遇到了相当大的困难,我认为我已经找到了编写音板的最佳方法,但当点击按钮时遇到了一个问题,什么都没有发生

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();