Chr*_*ris 42 android android-mediaplayer
我想点击一个按钮播放声音文件.声音只有1秒长.我点击按钮的前几次播放效果很好,但过了一会儿它会给出一个NullPointerException.这是代码:
button[i].setOnClickListener(new OnClickListener() {
public void onClick(View view) {
mp = MediaPlayer.create(Test.this, R.raw.mysound);
mp.start();
}
});
Run Code Online (Sandbox Code Playgroud)
这是例外:
07-29 23:07:27.690: ERROR/AndroidRuntime(10542): Uncaught handler: thread main exiting due to uncaught exception
07-29 23:07:27.710: ERROR/AndroidRuntime(10542): java.lang.NullPointerException
07-29 23:07:27.710: ERROR/AndroidRuntime(10542): at com.example.mypackage.Test$3.onClick(Test.java:270)
Run Code Online (Sandbox Code Playgroud)
Chr*_*ris 101
谢谢你的回答!欣赏它!
以下是我最终成功实现的方法:
button[i].setOnClickListener(new OnClickListener() {
public void onClick(View view) {
mp = MediaPlayer.create(Test.this, R.raw.mysound);
mp.setOnCompletionListener(new OnCompletionListener() {
@Override
public void onCompletion(MediaPlayer mp) {
// TODO Auto-generated method stub
mp.release();
}
});
mp.start();
}
});
Run Code Online (Sandbox Code Playgroud)
小智 24
你也可以尝试:
final soundPool = new SoundPool(1, AudioManager.STREAM_MUSIC, 0);
final sound = soundPool.load(this, R.raw.mysound, 1);
button[i].setOnClickListener(new OnClickListener()
{
public void onClick(View view)
{
soundPool.play(sound, 1.0f, 1.0f, 0, 0, 1.0f);
}
});
Run Code Online (Sandbox Code Playgroud)
或许可以解决你的问题
button[i].setOnClickListener(new OnClickListener() {
public void onClick(View view) {
new Thread(){
public void run(){
mp = MediaPlayer.create(Test.this, R.raw.mysound);
mp.start();
}.start();
}
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
82645 次 |
| 最近记录: |