W3Cschool
恭喜您成為首批注冊(cè)用戶
獲得88經(jīng)驗(yàn)值獎(jiǎng)勵(lì)
短音播放主要負(fù)責(zé)管理音頻資源的加載與播放、tone 音的生成與播放以及系統(tǒng)音播放。
短音播放開放能力分為音頻資源、tone 音和系統(tǒng)音三部分,均定義在 SoundPlayer 類。
接口名 | 描述 |
---|---|
SoundPlayer(int taskType) | 構(gòu)造函數(shù),僅用于音頻資源。 |
int createSound(String path) | 從指定的路徑加載音頻數(shù)據(jù)生成短音資源。 |
int createSound(Context context, int resourceId) | 根據(jù)應(yīng)用程序上下文合音頻資源 ID 加載音頻數(shù)據(jù)生成短音資源。 |
int createSound(AssetFD assetFD) | 從指定的 AssetFD 實(shí)例加載音頻數(shù)據(jù)生成短音資源。 |
int createSound(java.io.FileDescriptor fd, long offset, long length) | 根據(jù)文件描述符從文件加載音頻數(shù)據(jù)生成音頻資源。 |
int createSound(java.lang.String path, AudioRendererInfo rendererInfo) | 根據(jù)從指定路徑和播放信息加載音頻數(shù)據(jù)生成短音資源。 |
boolean setOnCreateCompleteListener(SoundPlayer.OnCreateCompleteListener listener) | 設(shè)置聲音創(chuàng)建完成的回調(diào)。 |
boolean setOnCreateCompleteListener(SoundPlayer.OnCreateCompleteListener listener, boolean isDiscarded) | 設(shè)置用于聲音創(chuàng)建完成的回調(diào),并根據(jù)指定的isDiscarded標(biāo)志位確定是否丟棄隊(duì)列中的原始回調(diào)通知消息。 |
boolean deleteSound(int soundID) | 刪除短音同時(shí)釋放短音所占資源。 |
boolean pause(int taskID) | 根據(jù)播放任務(wù)ID暫停對(duì)應(yīng)的短音播放。 |
int play(int soundID) | 使用默認(rèn)參數(shù)播放短音。 |
int play(int soundID, SoundPlayerParameters parameters) | 使用指定參數(shù)播放短音。 |
boolean resume(int taskID) | 恢復(fù)短音播放任務(wù)。 |
boolean setLoop(int taskID, int loopNum) | 設(shè)置短音播放任務(wù)的循環(huán)次數(shù)。 |
boolean setPlaySpeedRate(int taskID, float speedRate) | 設(shè)置短音播放任務(wù)的播放速度。 |
boolean setPriority(int taskID, int priority) | 設(shè)置短音播放任務(wù)的優(yōu)先級(jí)。 |
boolean setVolume(int taskID, AudioVolumes audioVolumes) | 設(shè)置短音播放任務(wù)的播放音量。 |
boolean setVolume(int taskID, float volume) | 設(shè)置短音播放任務(wù)的所有音頻聲道的播放音量。 |
boolean stop(int taskID) | 停止短音播放任務(wù)。 |
boolean pauseAll() | 暫停所有正在播放的任務(wù)。 |
boolean resumeAll() | 恢復(fù)雖有已暫停的播放任務(wù)。 |
接口名 | 描述 |
---|---|
SoundPlayer() | 構(gòu)造函數(shù),僅用于 tone 音。 |
boolean createSound(ToneDescriptor.ToneType type, int durationMs) | 創(chuàng)建具有音調(diào)頻率描述和持續(xù)時(shí)間(毫秒)的 tone 音。 |
boolean createSound(AudioStreamInfo.StreamType streamType, float volume) | 根據(jù)音量和音頻流類型創(chuàng)建 tone 音。 |
boolean play(ToneDescriptor.ToneType toneType, int durationMs) | 播放指定時(shí)長和 tone 音類型的 tone 音。 |
boolean pause() | 暫停 tone 音播放。 |
boolean play() | 播放創(chuàng)建好的 tone 音。 |
boolean release() | 釋放 tone 音資源。 |
接口名 | 描述 |
---|---|
SoundPlayer(String packageName) | 構(gòu)造函數(shù),僅用于系統(tǒng)音。 |
boolean playSound(SoundType type) | 播放系統(tǒng)音。 |
boolean playSound(SoundType type, float volume) | 指定音量播放系統(tǒng)音。 |
下面的樣例展示音頻資源的加載與播放:
public void demo() {
// 步驟1:實(shí)例化對(duì)象
SoundPlayer soundPlayer = new SoundPlayer(AudioManager.AudioVolumeType.STREAM_MUSIC.getValue());
// 步驟2:指定音頻資源加載并創(chuàng)建短音
int soundId = soundPlayer.createSound("/system/xxx");
// 步驟3:指定音量,循環(huán)次數(shù)和播放速度
SoundPlayerParameters parameters = new SoundPlayerParameters();
parameers.setVolumes(new AudioVolumes());
parameters.setLoop(10);
parameters.setSpeed(1.0f);
// 步驟4:短音播放
soundPlayer.play(soundId, parameters);
// 步驟5:停止播放
soundPlayer.stop(soundId);
// 步驟6:釋放短音資源
soundPlayer.deleteSound(soundId);
}
下面的樣例展示 tone 音的生成與播放:
public void demo() {
// 步驟1:實(shí)例化對(duì)象
SoundPlayer soundPlayer = new SoundPlayer();
// 步驟2:創(chuàng)建DTMF_0(高頻1336Hz,低頻941Hz)持續(xù)時(shí)間1000ms的tone音
soundPlayer.createSound(ToneDescriptor.ToneType.DTMF_0, 1000);
// 步驟3:tone應(yīng)播放,暫停和資源釋放
soundPlayer.play();
soundPlayer.pause();
soundPlayer.release();
}
下面的樣例展示系統(tǒng)音的播放:
public void demo() {
// 步驟1:實(shí)例化對(duì)象
SoundPlayer soundPlayer = new SoundPlayer("packageName");
// 步驟2:播放鍵盤敲擊音,音量為1.0
soundPlayer.playSound(SoundType.KEY_CLICK, 1.0f);
}
Copyright©2021 w3cschool編程獅|閩ICP備15016281號(hào)-3|閩公網(wǎng)安備35020302033924號(hào)
違法和不良信息舉報(bào)電話:173-0602-2364|舉報(bào)郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號(hào)
聯(lián)系方式:
更多建議: