admin 管理员组文章数量: 887021
android java 打开snd,java
编辑:根据要求添加了setOnLoadCompleteListener以及已加载的检查。 即使
我在onCreate期间将六个音效加载到音池中。 当我尝试播放这些声音时,应用程序崩溃,并且出现NullPointerException。 我经历了很多问题和教程,但我只是想不出什么错。 我已经清理了项目,并重新启动了Eclipse。 我知道这些声音文件可以工作,因为我以前让它们作为媒体播放器运行,而且还不错,但是我想将它们放在更合适的声音池中。
如果有人可以指出我犯的错误,那将是一个很大的帮助。 如有必要,将添加所需的更多信息。 感谢您的时间!
代码的相关部分:
public class MainActivity extends Activity {
SoundPool sp;
boolean loaded = false;
int dicesoundId;
int gunfire1soundId;
int smacksoundId;
int cellardoorsoundId;
int grenadesoundId;
int pageturn3soundId;
onCreate:
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
sp = new SoundPool(9, AudioManager.STREAM_MUSIC, 0);
sp.setOnLoadCompleteListener(new OnLoadCompleteListener() {
@Override
public void onLoadComplete(SoundPool soundPool, int sampleId, int status) {
if (status == 0){
loaded = true;
}
}
});
dicesoundId = sp.load(this, R.raw.dice, 1);
gunfire1soundId = sp.load(this, R.raw.gunfire1, 1);
smacksoundId = sp.load(this, R.raw.smack, 1);
cellardoorsoundId = sp.load(this, R.raw.cellardoor, 1);
grenadesoundId = sp.load(this, R.raw.grenade, 1);
pageturn3soundId = sp.load(this, R.raw.pageturn3, 1);
导致nullpointerexception的位置之一的示例:
menuButton1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (musicOn == 1 && loaded) sp.play(pageturn3soundId, 1, 1, 0, 0, 1);
loadPage(button1link);}
}
});
除非用户将其关闭,否则musicOn设置为on。 仅当打开音乐时才会发生崩溃。
奇怪的是,即使我的onPause也会导致应用崩溃:
public void onPause() {
super.onPause();
if (musicOn == 1 && loaded) {
sp.release();
sp = null;
}
}
输入onPause时应用最后一次崩溃时的LogCat:
01-15 18:37:54.823: E/AndroidRuntime(4855): FATAL EXCEPTION: main
01-15 18:37:54.823:E / AndroidRuntime(4855):进程:com.greekwinterproductions.westwarddystopia,PID:4855 01-15 18:37:54.823:E / AndroidRuntime(4855):java.lang.RuntimeException:Unable暂停活动{com .-- cut ---。MainActivity}:java.lang.NullPointerException 01-15 18:37:54.823:E / AndroidRuntime(4855):位于android.app.ActivityThread.performPauseActivity(ActivityThread.java: 3048)01-15 18:37:54.823:E / AndroidRuntime(4855):位于android.app.ActivityThread.performPauseActivity(ActivityThread.java:3003)01-15 18:37:54.823:E / AndroidRuntime(4855):位于android.app.ActivityThread.handlePauseActivity(ActivityThread.java:2981)01-15 18:37:54.823:E / AndroidRuntime(4855):at android.app.ActivityThread.access $ 1000(ActivityThread.java:135)01-15 18 :37:54.823:E / AndroidRuntime(4855):在android.app.ActivityThread $ H.handleMessage(ActivityThread.java:1207)01-15 18:37:54.823:E / AndroidRuntime(4855):在android.os。 Handler.dispatchMessage(Handler.java:102)01-15 18:37:54.823:E / AndroidRuntime(4855):at android.os.Looper.loop(Looper.java:136)01-15 18:37:54.823:E / AndroidRuntime(4855):at android.app.ActivityThread.main(ActivityThread.java:5001)01-15 18: 37:54.823:E / AndroidRuntime(4855):位于java.lang.reflect.Method.invokeNative(本机方法)01-15 18:37:54.823:E / AndroidRuntime(4855):位于java.lang.reflect.Method invoke(Method.java:515)01-15 18:37:54.823:E / AndroidRuntime(4855):at com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:785)01-15 18: 37:54.823:E / AndroidRuntime(4855):在com.android.internal.os.ZygoteInit.main(ZygoteInit.java:601)01-15 18:37:54.823:E / AndroidRuntime(4855):在dalvik.system .NativeStart.main(本机方法)01-15 18:37:54.823:E / AndroidRuntime(4855):原因:java.lang.NullPointerException 01-15 18:37:54.823:E / AndroidRuntime(4855):at com .greekwinterproductions.westwarddystopia.MainActivity.onPause(MainActivity.java:3122)01-15 18:37:54.823:E / AndroidRuntime(4855):at android.app.Activity.performPause(Activity.java:5335)01-15 1 8:37:54.823:E / AndroidRuntime(4855):位于android.app.Instrumentation.callActivityOnPause(Instrumentation.java:1233)01-15 18:37:54.823:E / AndroidRuntime(4855):位于android.app.ActivityThread .performPauseActivity(ActivityThread.java:3034)
本文标签: android java 打开snd java
版权声明:本文标题:android java 打开snd,java 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.freenas.com.cn/free/1698398837h298002.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论