캔버스내에서 직접 하려고
sound_beep=sound_pool.load(this, R.raw.argon,1);하면
액티비티가 아니라서 로드할 수 없다고 하고요!
Activity에서 이벤트 리스너를 등록해서. 터치 이벤트 발생 시 엑티비티에서 소리가 나게 하세요..
package kr.xxx,xxx;
public class GameActivityA extends Activity {
CanvasView canvasView;
String abc="name";
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
canvasView.setting(abc);
canvasView.setOnTouchEventListener(new CanvasView.OnTouchEventListener()
{
public boolean onTouchEvent(MotionEvent event)
{
// 여기서 소리를 발생 시키세요.
}
});
}
}
class CanvasView extends View {
GameActivityA gaa;
String nameB;
OnTouchEventListener mOnTouchEventListener;
public CanvasView(Context context, AttributeSet attribs) {
super(context, attribs);
mOnTouchEventListener = null;
}
public void setting(String mName){
this.nameB=mName;
}
public void setOnTouchEventListener(OnTouchEventListener l)
{
mOnTouchEventListener = l;
}
protected void onDraw(Canvas canvas) {
}
@Override
public boolean onTouchEvent(MotionEvent event) {
여기서 이벤트 발생시 소리나게 하는 방법
if(mOnTouchEventListener != null)
mOnTouchEventListener.onTouchEvent(event);
}
public interface OnTouchEventListener
{
public boolean onTouchEvent(MotionEvent event);
}
}
액티비티에서는 된다. 그런데 gaa 라는 액티비티 변수가 있다.
액티비티에 함수를 만들어 놓고(playSound() 라든가..)
gaa.palySound() 와 같이 콜 해주면 되지 않을까요?