gpt4 book ai didi

android - 用铃声振动手机直到铃声停止

转载 作者:行者123 更新时间:2023-11-30 03:22:40 29 4
gpt4 key购买 nike

在我的应用程序中,我正在播放来自服务的铃声。

protected boolean playRingtone() {      
Uri ringtoneUri = _savedValues.loadRingtoneUri();
_audioManager = (AudioManager) getSystemService(Context.AUDIO_SERVICE);
_maxVolume = _audioManager.getStreamMaxVolume(AudioManager.STREAM_MUSIC);
_oldVolume = _audioManager.getStreamVolume(AudioManager.STREAM_MUSIC);
_audioManager.setStreamVolume(AudioManager.STREAM_MUSIC, _maxVolume,AudioManager.FLAG_SHOW_UI);




_mp = new MediaPlayer();
try {
_mp.setDataSource(this, ringtoneUri);
} catch (Exception e) {
return false;
}

_mp.setVolume(_maxVolume, _maxVolume);
_mp.setAudioStreamType(AudioManager.STREAM_MUSIC);
_mp.setLooping(true);
try {
_mp.prepare();
} catch (Exception e) {
return false;
}

_mp.start();
return true;
}

以及服务何时停止

public void Stop() {
//cancel ringtone playback if it's going on
if (_ringAloud) {
if (_audioManager != null) {
_audioManager.setStreamVolume(AudioManager.STREAM_MUSIC,_oldVolume, AudioManager.FLAG_SHOW_UI);
}
if (_mp != null) {
if (_mp.isPlaying()) {
_mp.stop();
}
_mp.release();
}
}

现在,我希望它也振动直到服务停止。但是 Vibrator 类除了 vibrate(time) 和 vibrate(pattern,repeat) 之外没有提供任何方法。那么,有没有办法让手机振动与铃声同步。

最佳答案

您可以使用此方法启动和停止振动。

public static void onClickStartVibrate(Context c)
{

//Set the pattern for vibration
long pattern[]={0,200,100,300,400};

//Start the vibration
vibrator = (Vibrator)c.getSystemService(Context.VIBRATOR_SERVICE);
//start vibration with repeated count, use -1 if you don't want to repeat the vibration
vibrator.vibrate(pattern, 0);

}

停止振动

public static void onClickStopVibrate()
{
try{
vibrator.cancel();
}
catch(NullPointerException e)
{}
}

关于android - 用铃声振动手机直到铃声停止,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18824538/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com