android实现震动和声音

直接上类  震动和声音是一起的

public class TipHelper {
	static Context myContext;
	static Vibrator vibrator;
	static MediaPlayer mediaPlayer;
	
	public TipHelper (Context context){
		myContext=context;
		vibrator=(Vibrator)myContext.getSystemService(Service.VIBRATOR_SERVICE);
		mediaPlayer=new MediaPlayer();
	}
	/**
	 * 震动功能
	 * @param activit
	 * @param milliseconds 震动时长 单位为毫秒
	 */
	public static void Vibrate(long milliseconds){
		
//		long [] pattern={100,400,100,400};//停止 开启  停止 开启
//		vibrator.vibrate(pattern, 2);//重复两次上面的panttern,如果只是震动一次,index的值设定为-1
		vibrator.vibrate(milliseconds);
	}
	/**
	 * 震动功能
	 * @param activity
	 * @param pattern 自定义震动(模式)周期 long[] pattern={100,400,100,400}//停止 开启 停止 开启
	 * @param isRepeat
	 */
	public static void Vibrate(long[] pattern,boolean isRepeat){
		vibrator.vibrate(pattern, isRepeat?1:-1);
	}
	/**
	 * 停止震动与响铃
	 */
	public static void destroy(){
		vibrator.cancel();
		mediaPlayer.stop();//停止
		mediaPlayer.release();//释放资源
	}
	
	/**
	 * 提示音
	 * @param FLAG 标识符为1时提示超速警告   标识符为2时提示越界警告
	 */
	public static void playvoid(int FLAG){
		try{
			mediaPlayer.reset();
			mediaPlayer.setLooping(true);//重复播放
			Uri uri = null;
			if(FLAG==1){
				uri=Uri.parse("android.resource://" + myContext.getPackageName() + "/"+R.raw.overspeed);//raw文件夹下的yes音频文件,使用的时候要注意修改			
			}
			else if(FLAG==2){
				uri=Uri.parse("android.resource://" + myContext.getPackageName() + "/"+R.raw.overzone);//raw文件夹下的yes音频文件,使用的时候要注意修改			
				
			}
			//mediaPlayer.create(MainActivity.this, R.raw.yes);
			mediaPlayer.setDataSource(myContext, uri);//设置文件员
			mediaPlayer.setAudioStreamType(AudioManager.STREAM_RING);
			mediaPlayer.prepare();//添加缓存
			mediaPlayer.setOnPreparedListener(new OnPreparedListener() {
				
				@Override
				public void onPrepared(MediaPlayer mp) {
					mediaPlayer.start();//开始播放
				}
			});
		}catch (Exception e) {
			// TODO: handle exception
		}
	}
}
	


你可能感兴趣的:(Adroid学习心得)