当用户触摸屏幕时,我在播放声音效果时遇到了一个奇怪的问题。我真的不知道该去哪里。我有一个名为 sing 的类和一个名为 sound() 的方法来播放音效。在 onCreate() 方法中,代码可以正常工作,但在 onTouch() 方法中,却不行。这是我正在使用的代码:
TextView textview;
Sing sing;
@Override
public void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
textview = new TextView(this);
textview.setText("Test");
setContentView(textview);
sing = new Sing();
sing.create();
sing.sound("sound.ogg");//just to test, works fine
}
public boolean onTouch(View v, MotionEvent event){
if (event.getAction() == MotionEvent.ACTION_UP){
sing.sound("sound.ogg"); //doesnt work
}
return true;
}
在 onCreate() 中第一次调用 sing.sound() 工作正常,但在 onTouch() 中的后续调用似乎没有做任何事情。这个测试类扩展了活动并实现了onTouch,我已经导入了onTouch,除此之外我真的不知道错误可能是什么。我会发布唱歌课程,但它的代码量很大。任何人都可以提供的任何帮助将不胜感激。今天我已经为此苦苦挣扎了很长时间,我对android还不是很好。提前致谢。
--edit 这是整个活动:
package com.test.ch4;
import android.app.Activity;
import android.os.Bundle;
import android.widget.TextView;
import android.view.View;
import android.view.MotionEvent;
import android.view.View.OnTouchListener;
public class SoundPoolTest extends Activity implements OnTouchListener{
TextView textview;
Sing sing;
@Override
public void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
textview = new TextView(this);
textview.setTextSize(40);
textview.setText("Test");
setContentView(textview);
}
public boolean onTouch(View v, MotionEvent event){
if (event.getAction() == MotionEvent.ACTION_UP){
sing = new Sing();
sing.create();
sing.sound("sound.ogg");
}
return true;
}
}