Воспроизведение аудио в Android на Touch
Я пишу код для воспроизведения звука и вибрации, когда пользователь касается экрана и когда он поднимает палец вверх, вибрация и звук прекращается. Требуется помощь для воспроизведения звука... все работает, включая вибрацию, но звук не воспроизводится... имя аудиофайла 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;
}
});
}
}
1 ответ
MediaPlayer mp;
Внутри Oncreate()
mp= MediaPlayer.create(getApplicationContext(), R.raw.tr);
Музыкальный файл должен быть в вашей директории
Начать музыку
mp.start();