android应用开发之——蜂鸣提示音和震动提示的实现

来源:互联网 发布:越南看中国综艺 知乎 编辑:程序博客网 时间:2024/05/19 03:46

参考文档:

http://blog.csdn.net/dyllove98/article/details/8799249

正文:

今天做一个应用,需要震动提示和声音提示,在网上找了一下资料,发现基本内容是对的,不过有些内容不是很详尽,所以记录一下,供大家参考。

1.震动

先说简单的,震动提示

第一步,在AndroidManifest.xml 里声明权限

 <uses-permissionandroid:name="android.permission.VIBRATE"/>

第二步,获得震动服务并启动

 Vibrator vibrator = (Vibrator)activity.getSystemService(Context.VIBRATOR_SERVICE);

vibrator.vibrate(newlong[]{300,500},0);

经过以上两步,就启动震动了。上述代码直接在程序中调用就可以了,这个是比较简单的,比大象放冰箱要少一步。Vibrate()的参数网上能查到,看看就知道了。

2.提示铃声

第一步,1.准备一个音频文件比如:beep.ogg。先把音频文件导入到res/raw文件夹下,需要注意的是这个文件下的文件名必须是小写,之后导入即可。

第二步,为activity注册的默认音频通道。这个一般在onCreate()函数中注册即可。

 activity.setVolumeControlStream(AudioManager.STREAM_MUSIC);

第三步,检查当前情景模式,确定不要是静音。

第四步,初始化MediaPlayer对象,指定播放的声音通道为 STREAM_MUSIC,这和上面的步骤一致,指向了同一个通道。

 MediaPlayer mediaPlayer = new MediaPlayer();//这个我定义了一个成员函数

 mediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);

第五步,注册事件。当播放完毕一次后,重新指向流文件的开头,以准备下次播放。

 mediaPlayer .setOnCompletionListener(newMediaPlayer.OnCompletionListener() {

        @Override

public voidonCompletion(MediaPlayer player) {

        player.seekTo(0);

        }

 });

第六步,设定数据源,并准备播放

AssetFileDescriptor file =activity.getResources().openRawResourceFd(

 R.raw.beep);

 try{

 mediaPlayer.setDataSource(file.getFileDescriptor(),

 file.getStartOffset(), file.getLength());

 file.close();

 mediaPlayer.setVolume(BEEP_VOLUME,BEEP_VOLUME);

 mediaPlayer.prepare();

 }catch (IOException ioe) {

 Log.w(TAG, ioe);

 mediaPlayer = null;

 }

第七步,开始播放

mediaPlayer.start();

 

经过以上几步,就可以实现手机的铃声了。

 


 


原创粉丝点击