Android 安卓:点击播放音频剪辑
如何设置音频文件以在用户触摸图像时播放 我应该将音频文件存储在哪里?我应该使用什么代码来实际播放该文件? 我不想打开MediaPlayer界面或诸如此类的东西 我想这样做:Android 安卓:点击播放音频剪辑,android,audio,Android,Audio,如何设置音频文件以在用户触摸图像时播放 我应该将音频文件存储在哪里?我应该使用什么代码来实际播放该文件? 我不想打开MediaPlayer界面或诸如此类的东西 我想这样做: foo = (ImageView)this.findViewById(R.id.foo); foo.setOnClickListener(this); public void onClick(View v) { if (foo.isTouched()) { playAudioFile(); } } 谢谢这
foo = (ImageView)this.findViewById(R.id.foo);
foo.setOnClickListener(this);
public void onClick(View v) {
if (foo.isTouched()) {
playAudioFile();
}
}
谢谢这不会导致MediaPlayer界面出现问题。。。它只会播放你想要的声音
Button boton = (Button) findViewById(R.id.boton);
boton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
MediaPlayer mp = MediaPlayer.create(TestSonido.this, R.raw.slayer);
mp.start();
}
});
在这种情况下,
R.raw.slayer
表示一个名为slayer.mp3
的音频文件,该文件存储在res/raw/
文件夹中,一旦您单击该按钮,droid将震撼您……您也可以使用声音池
实现同样的效果
MediaPlayer
首先将整个声音数据加载到内存中,然后播放,因此在频繁切换声音时会产生一些延迟
SoundPool
对于小尺寸的声音文件是一个更好的选择,并且使用.ogg
媒体文件可以产生更好的效果
SoundPool pl = new SoundPool(5, AudioManager.STREAM_MUSIC, 0);
// 5 indicates the maximum number of simultaneous streams for this SoundPool object
pl.setOnLoadCompleteListener(new OnLoadCompleteListener() {
@Override
public void onLoadComplete(SoundPool soundPool, int sampleId, int status) {
// The onLoadComplet method is called when a sound has completed loading.
soundPool.play(sampleId, 1f, 1f, 0, 0, 1);
// second and third parameters indicates left and right value (range = 0.0 to 1.0)
}
});
Button btn = findViewById(R.id.boton);
btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
int sound = pl.load(this, R.raw.sound_01, 0);
}
});
public void aud_play(视图){
如果(!mp.isplay()){//媒体播放器未播放它。
mp=MediaPlayer.create(这个,R.raw.audio\u名称);
mp.start();
}否则{//为已经开始演奏而干杯。。。
}
}
如下面的答案所述,将my_sound.mp3
放入res/raw/
中,然后通过R.raw.my_sound
引用它。但是,您有两个选择:MediaPlayer
和SoundPool
。为了有效地管理内存,您应该使用一个库来处理这些类:如果我在完成上一个音频剪辑之前单击两次按钮,会发生什么情况,我想它会播放双音频?我已经防止了双音频问题。