815

AudioManager(音频管理器):

AudioManager am=(AudioManager)this.getSystemService(Service.AUDIO_SERVICE);

int maxVol= am.getStreamMaxVolume(AudioManager.STREAM_MUSIC);//获取最大音乐音量值(15最大) AudioManager.STREAM_VOICE_CALL 通话音量 AudioManager.STREAM_SYSTEM 系统音量 AudioManager.STREAM_RING 铃声音量 AudioManager.STREAM_ALARM 提示音音量

int current=am.getStreamVolume(AudioManager.STREAM_MUSIC);

setVolumeControlStream(int streamType)可以设置该Activity中音量控制键控制的音频流
setVolumeControlStream(AudioManager.STREAM_MUSIC);
//设定调整音量为媒体音量,当暂停播放的时候调整音量就不会再默认调整铃声音量了

adjustStreamVolume(int streamType,int direction,int flags)//按部调整手机指定类型的声音的大小。第一个参数 指定声音类型,第二个参数指定对声音进行增大AudioManager.ADJUST_RAISE还是减小AudioManager.ADJUST_LOWER,第三个参数是调整声音时的标志:如FLAG_SHOW_UI 指定调整声音时显示声音进度条

setStreamVolume(int streamType,int index,int flags)直接设置手机指定的类型音量值 flags:AudioManager.FLAG_PLAY_SOUND

am.setStreamMute(AudioManager.STREAM_MUSIC,isChecked);//根据isChecked确定是否需要静音

1.MediaPlayer mplayer=new MediaPlayer();
2.mplayer.reset();
3.mplayer.setDataSource(String path); 
或 mplayer.setDataSource(FileDescriptor fd,long offset,long length); 或  mplayer.setDataSource(FileDescriptor fd);或 mplayer.setDataSource(Context context,Uri uri);
4.mplayer.prepare();
5.mplayer.start();
mplayer.setOnCompletionListener(new onCompletionListener())
mplayer.setOnPreparedListener(new onPreparedListener())
mplayer.setOnSeekCompeteListener(new onOnSeekCompeteListener())

备注:AssetManager am=getAssets();
      AssetFileDescriptor afd=am.openFd(music);
	  afd.getFileDescriptor();
	  
	  
1.SoundPool soundpool=new SoundPOOL(10,AudioManager.STREAM_SYSTEM,5);//最多可容纳10个音频流,音频的品质为5
2.HashMap<Integer,Integer> soundMap=new ....;
3.soundMap.put(1,soundPool.load(this,R.raw.bomb,1))//load方法加载指定音频文件,并返回所加载的音频Id,此处使用hashMap来管理这些音频流,1 代表的是priority,目前没有任何意义
load(FileDescriptor fd,long offset,long length,int priority);
load(AssetFileDescriptor afd,int priority);
load(String path,int priority);
4.soundpool.play(soundMap.get(1),1,1,0,0,1);//(int soundID, float leftVolume, float rightVolume, int priority, int loop, float )

震动 Vibrator
1.Vibrator vibrator=(Vibrator)getSystemService(Service.VIBRATOR_SERVICE);
2.vibrator.vibrate(2000)//控制手机震动2秒
或 vibrator.vibrate(long[]pattern,intrepeat)。(pattern的形式为new long[]{arg1,arg2,arg3,arg4......},其中以两个一组的如arg1 和arg2为一组、arg3和arg4为一组,每一组的前一个代表等待多少毫 秒启动vibrator,后一个代表vibrator持续多少毫秒停止,之后往复即 可。Repeat表示重复次数,当其为-1时,表示不重复只以pattern的方 式运行一次)。
3.vibrator.cancle();
<uses-permission android:name="android.permission.VIBRATE">

传感器 SensorManager
1.SensorManager sensormanager=(SensorManager)getSystemService(Context.SENSOR_SERVICE);
2.sensormanager.registerListener(this,sensormanager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER),SensorManager.SENSOR_DELAY_GAME);//为指定的sensor注册监听器(Listener,sensor,rate)第一个参数:监听传感器事件的监听器,第二个参数:传感器对象,第三个参数 获取传感器数据的频率
其中sensormanager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER);获取指定类型的传感器
3.implements SensorEventListener 重写 public void onSensorChanged(SensorEvent event);{float[]values=event.values;//x.y.z轴方向上的加速度values[0],values[1],values[2]}//此方法在当传感器的值发生变化时回调
public void onAccuracyChanged(Sensor sensor,int accuracy)//当传感器精度改变时调用

x = event.values[0]; // 手机横向翻滚
// x>0 说明当前手机左翻 x<0右翻
y = event.values[1]; // 手机纵向翻滚
// y>0 说明当前手机下翻 y<0上翻
z = event.values[2]; // 屏幕的朝向
// z>0 手机屏幕朝上 z<0 手机屏幕朝下
 如果当前手机是纵向屏幕:  

              x>0 说明当前手机左翻 x<0右翻     

              y>0 说明当前手机下翻 y<0上翻 

 如果当前手机是横向屏幕: 

             x>0 说明当前手机下翻 x<0上翻     

             y>0 说明当前手机右翻 y<0左翻  



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值