我正在编写代码以播放声音并在用户触摸屏幕时以及在其手指抬起时振动和声音停止时振动。
播放音频所需的帮助...包括振动在内的所有功能都可以正常工作,但是无法播放音频...
音频文件名为tr.mp3
这是我的代码:
package dynamitechetan.trimmersimulator;
import android.content.Context;
import android.content.res.AssetFileDescriptor;
import android.media.MediaPlayer;
import android.os.Bundle;
import android.os.Vibrator;
import android.support.v7.app.AppCompatActivity;
import android.view.MotionEvent;
import android.view.View;
import android.widget.ImageView;
import java.io.IOException;
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
final ImageView b = (ImageView) findViewById(R.id.bg1);
final MediaPlayer mp = new MediaPlayer();
b.setOnTouchListener(new View.OnTouchListener() {
public boolean onTouch(View v, MotionEvent event) {
Vibrator vb = (Vibrator) getSystemService(Context.VIBRATOR_SERVICE);
if ((event.getAction() & MotionEvent.ACTION_MASK) == MotionEvent.ACTION_DOWN) {
vb.vibrate(1000 * 60 * 10);//10mins
b.setImageResource(R.drawable.img2);
// mp.seekTo(0);
//
//// mp.reset();
// mp.start();
try {
mp.reset();
AssetFileDescriptor afd;
afd = getAssets().openFd("tr.mp3");
mp.setDataSource(afd.getFileDescriptor(), afd.getStartOffset(), afd.getLength());
mp.prepare();
mp.start();
} catch (IOException e) {
e.printStackTrace();
}
return true;
}
if ((event.getAction() & MotionEvent.ACTION_MASK) == MotionEvent.ACTION_UP) {
vb.cancel();
mp.stop();
b.setImageResource(R.drawable.img1);
return false;
}
return false;
}
});
}
}
最佳答案
MediaPlayer mp;
里面 Oncreate()
mp= MediaPlayer.create(getApplicationContext(), R.raw.tr);
音乐文件应位于原始目录中
开始音乐
mp.start();
关于android - 在Android onTouch上播放音频,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34101770/