我的问题很简单,我很确定。只是我不太确定如何有效地描述我想要实现的目标。
无论如何,我有一个简单的按钮,我知道如何“链接”原始声音文件以手动播放。但是我想要做的就是将3秒的声音连接到按钮,然后在用户按住按钮时让它循环,然后在按钮松开时停止播放。任何人都有他们可以分享的任何示例链接,这将是伟大的!谢谢!
编辑: 谢谢Cpt.Ohlund!
谢谢,这肯定是有帮助的并且做了诀窍,但是我遇到了另外一个小问题,也许你可以帮助我,我正在使用http://developer.android.com/resources/tutorials/views/hello-formstuff.html上看到的“自定义按钮”
在添加“onTouch Listener之前它工作正常。按钮现在不使用它的android:state_pressed项目它只显示正常项目而不是按下的项目。至少它现在播放声音。但是,任何想法?
答案 0 :(得分:2)
您可以使用以下内容,只需将R.raw.hit更改为您自己的声音文件:
public class XButtonSound extends Activity implements OnTouchListener {
private int sound;
private SoundPool sounds;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Button donePlacing = new Button(this.getApplicationContext());
donePlacing.setId(1);
donePlacing.setText("Play");
donePlacing.setOnTouchListener(this);
this.addContentView(donePlacing, new LayoutParams(LayoutParams.WRAP_CONTENT,LayoutParams.WRAP_CONTENT));
sounds = new SoundPool(5, AudioManager.STREAM_MUSIC, 0);
sound = sounds.load(this.getApplicationContext(), R.raw.hit, 1);
}
@Override
public boolean onTouch(View arg0, MotionEvent event) {
switch (event.getAction() ) {
case MotionEvent.ACTION_DOWN:
System.out.println("touch");
sounds.play(sound, 1, 1, 1, -1, 1);
break;
case MotionEvent.ACTION_UP:
System.out.println("up");
sounds.autoPause();
break;
}
return true;
}
}