我正在写一个声卡。我想这样,当一个人按下按钮播放声音时,它会首先看到声音是否正在播放。因此,它可以停止声音并启动新声音。
是否可以查看声音ID是否仍在播放,我正在使用以下代码启动声音
// Sound code
void StartSound(int id)
{
AudioManager audioManager = (AudioManager) getSystemService(AUDIO_SERVICE);
float actualVolume = (float) audioManager
.getStreamVolume(AudioManager.STREAM_MUSIC);
float maxVolume = (float) audioManager
.getStreamMaxVolume(AudioManager.STREAM_MUSIC);
float volume=(float) ((float)cGlobals.gVol/100.00);
// Is the sound loaded already?
soundPool.play(id, volume, volume, 1, 0, 1f);
}
答案 0 :(得分:1)
您可以使用isMusicActive()
的{{1}}方法。
答案 1 :(得分:0)
class AudioSystem{
/*
* Checks whether the specified stream type is active.
*
* return true if any track playing on this stream is active.
*/
public static native boolean isStreamActive(int stream, int inPastMs);
}
对于流:
/** The audio stream for phone calls */
public static final int STREAM_VOICE_CALL = AudioSystem.STREAM_VOICE_CALL;
/** The audio stream for system sounds */
public static final int STREAM_SYSTEM = AudioSystem.STREAM_SYSTEM;
/** The audio stream for the phone ring */
public static final int STREAM_RING = AudioSystem.STREAM_RING;
/** The audio stream for music playback */
public static final int STREAM_MUSIC = AudioSystem.STREAM_MUSIC;
/** The audio stream for alarms */
public static final int STREAM_ALARM = AudioSystem.STREAM_ALARM;
/** The audio stream for notifications */
public static final int STREAM_NOTIFICATION = AudioSystem.STREAM_NOTIFICATION;
/** @hide The audio stream for phone calls when connected to bluetooth */
public static final int STREAM_BLUETOOTH_SCO = AudioSystem.STREAM_BLUETOOTH_SCO;
/** @hide The audio stream for enforced system sounds in certain countries (e.g camera in Japan) */
public static final int STREAM_SYSTEM_ENFORCED = AudioSystem.STREAM_SYSTEM_ENFORCED;
/** The audio stream for DTMF Tones */
public static final int STREAM_DTMF = AudioSystem.STREAM_DTMF;
/** @hide The audio stream for text to speech (TTS) */
public static final int STREAM_TTS = AudioSystem.STREAM_TTS;
检查您要检查的任何类型的音频流。例如,AudioSystem.isStreamActive(STREAM_MUSIC, 0)
检查是否有任何音乐处于活动状态。