public class BeepManager {
private static final float BEEP_VOLUME = 0.10f;
private static final long VIBRATE_DURATION = 200L;
private static MediaPlayer mediaPlayer;
private static AssetFileDescriptor file;
private static Vibrator vibrator;
public static void playBeepSoundAndVibrate(Activity activity){
init(activity);
if (mediaPlayer != null) {
mediaPlayer.start();
}
vibrator.vibrate(VIBRATE_DURATION);
}
public static void init(Activity activity){
vibrator = (Vibrator) activity
.getSystemService(Context.VIBRATOR_SERVICE);
mediaPlayer = new MediaPlayer();
mediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);
mediaPlayer.setOnCompletionListener(new OnCompletionListener(){
@Override
public void onCompletion(MediaPlayer mp) {
// TODO Auto-generated method stub
mp.release();
mediaPlayer = null;
}});
mediaPlayer.setOnErrorListener(new OnErrorListener(){
@Override
public boolean onError(MediaPlayer mp, int arg1, int arg2) {
// TODO Auto-generated method stub
mp.release();
mediaPlayer = null;
return true;
}});
file = activity.getResources().openRawResourceFd(
R.raw.zxing_beep);
try {
mediaPlayer.setDataSource(file.getFileDescriptor(),
file.getStartOffset(), file.getLength());
file.close();
mediaPlayer.setVolume(BEEP_VOLUME, BEEP_VOLUME);
mediaPlayer.prepare();
}
catch (IOException ioe) {
mediaPlayer = null;
}
}
}
private static final float BEEP_VOLUME = 0.10f;
private static final long VIBRATE_DURATION = 200L;
private static MediaPlayer mediaPlayer;
private static AssetFileDescriptor file;
private static Vibrator vibrator;
public static void playBeepSoundAndVibrate(Activity activity){
init(activity);
if (mediaPlayer != null) {
mediaPlayer.start();
}
vibrator.vibrate(VIBRATE_DURATION);
}
public static void init(Activity activity){
vibrator = (Vibrator) activity
.getSystemService(Context.VIBRATOR_SERVICE);
mediaPlayer = new MediaPlayer();
mediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);
mediaPlayer.setOnCompletionListener(new OnCompletionListener(){
@Override
public void onCompletion(MediaPlayer mp) {
// TODO Auto-generated method stub
mp.release();
mediaPlayer = null;
}});
mediaPlayer.setOnErrorListener(new OnErrorListener(){
@Override
public boolean onError(MediaPlayer mp, int arg1, int arg2) {
// TODO Auto-generated method stub
mp.release();
mediaPlayer = null;
return true;
}});
file = activity.getResources().openRawResourceFd(
R.raw.zxing_beep);
try {
mediaPlayer.setDataSource(file.getFileDescriptor(),
file.getStartOffset(), file.getLength());
file.close();
mediaPlayer.setVolume(BEEP_VOLUME, BEEP_VOLUME);
mediaPlayer.prepare();
}
catch (IOException ioe) {
mediaPlayer = null;
}
}
}
本文介绍了一个名为BeepManager的类,该类用于在Android应用中播放提示音并触发振动反馈。通过初始化MediaPlayer和Vibrator组件,实现了一次性的声音与振动效果。此功能对于增强用户体验非常有用。
665

被折叠的 条评论
为什么被折叠?



