新聞中心
這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
創(chuàng)新互聯(lián)鴻蒙OS教程:鴻蒙OS短音播放開發(fā)指導(dǎo)
場景介紹

短音播放主要負責管理音頻資源的加載與播放、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ù)據(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標志位確定是否丟棄隊列中的原始回調(diào)通知消息。 |
| boolean deleteSound(int soundID) | 刪除短音同時釋放短音所占資源。 |
| boolean pause(int taskID) | 根據(jù)播放任務(wù)ID暫停對應(yīng)的短音播放。 |
| int play(int soundID) | 使用默認參數(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)先級。 |
| 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ù)時間(毫秒)的 tone 音。 |
| boolean createSound(AudioStreamInfo.StreamType streamType, float volume) | 根據(jù)音量和音頻流類型創(chuàng)建 tone 音。 |
| boolean play(ToneDescriptor.ToneType toneType, int durationMs) | 播放指定時長和 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)音。 |
音頻資源的加載與播放
- 通過 SoundPlayer(int taskType)構(gòu)造方法獲取 SoundPlayer 類的實例化對象,其中入?yún)?taskType 的取值范圍和含義參考枚舉類 AudioManager.AudioStreamType 的定義。
- 調(diào)用 createSound(String path) 方法從指定路徑加載音頻資源,并生成短音 ID,后續(xù)可使用通過短音 ID 進行短音資源的播放和刪除等操作。
- (可選)提供單獨對音量,循環(huán)次數(shù),播放速度和優(yōu)先級進行的設(shè)置的方法,支持在短音播放過程中進行實時調(diào)整。
- 短音播放提供兩種方法,一種是包含播放參數(shù)設(shè)置的 play(int soundID, SoundPlayerParameters parameters) 方法,用戶可以在 SoundPlayerParameters 數(shù)據(jù)結(jié)構(gòu)中定義音量,循環(huán)次數(shù),播放速度和優(yōu)先級,另一種是使用默認播放參數(shù)的 play(int soundID) 方法。短音播放成功后返回任務(wù) ID,供后續(xù)對任務(wù)的管理。
- 通過任務(wù) ID,可以對短音播放任務(wù)進行暫停,恢復(fù)和停止。
- 短音資源使用完畢需要調(diào)用 deleteSound(int soundID)完成對資源的釋放。
下面的樣例展示音頻資源的加載與播放:
public void demo() {
// 步驟1:實例化對象
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 音的生成與播放
- 通過 SoundPlayer() 構(gòu)造方法獲取 SoundPlayer 類的實例化對象。
- 使用 SoundPlayer 的實例化對象,通過 createSound(ToneDescriptor.ToneType type, int durationMs)方法,指定 tone 音類型和 tone 音播放時長來創(chuàng)建 tone 音資源。
- 使用 SoundPlayer 的實例化對象,通過 play、pause、release 方法完成 tone 音播放,tone 音暫停和 tone 音資源釋放。
下面的樣例展示 tone 音的生成與播放:
public void demo() {
// 步驟1:實例化對象
SoundPlayer soundPlayer = new SoundPlayer();
// 步驟2:創(chuàng)建DTMF_0(高頻1336Hz,低頻941Hz)持續(xù)時間1000ms的tone音
soundPlayer.createSound(ToneDescriptor.ToneType.DTMF_0, 1000);
// 步驟3:tone應(yīng)播放,暫停和資源釋放
soundPlayer.play();
soundPlayer.pause();
soundPlayer.release();
}系統(tǒng)音的播放
- 通過 SoundPlayer(String packageName) 構(gòu)造方法獲取 SoundPlaye r類的實例化對象。
- 使用 SoundPlayer 的實例化對象,通過 playSound(SoundType type) 或 playSound(SoundType type, float volume) 方法指定系統(tǒng)音類型和音量,并進行系統(tǒng)音播放。
下面的樣例展示系統(tǒng)音的播放:
public void demo() {
// 步驟1:實例化對象
SoundPlayer soundPlayer = new SoundPlayer("packageName");
// 步驟2:播放鍵盤敲擊音,音量為1.0
soundPlayer.playSound(SoundType.KEY_CLICK, 1.0f);
} 本文標題:創(chuàng)新互聯(lián)鴻蒙OS教程:鴻蒙OS短音播放開發(fā)指導(dǎo)
分享網(wǎng)址:http://m.5511xx.com/article/dpddede.html


咨詢
建站咨詢
