WavPlayer

优质
小牛编辑
180浏览
2023-12-01

1.1. 介绍:

WavPlayer 支持只 wav 格式的文件,该播放器是单例模式的,最新的一次播放可以中断上次播放,其设计的主要目是为了快速播放本地 wav 音频文件

1.2. 接口:

  1. int prePrepareWavPlayer( const char* fileNames[], int num);

    • 预加载文件到内存,可加载的最大文件数是 10,该接口是可选
    • @param {Array} filenames - 所有预加载文件的路径
    • @param {int} num - 预加载文件数目
  2. int prepareWavPlayer(constchar filePath = NULL, const char tag = NULL,boo l holdConnect = true);

    • 创建播放器以及创建播放线程
    • @param {string} filename - 要播放的文件名称
    • @param {number} tag -该播放器 stream 的 tag
    • @param {boolean} holdConnect - 是否保持与 pulseaduio 服务端的链接,保持链接需要 2% ~ 3% 的 CPU 消耗
  3. void startWavPlayer();

    • 开始播放.
  4. void stopWavPlayer();

    • 停止播放.

1.3. 测试结果说明

FileFile Size(bytes)FormatMedia Duration(ms)Delay Time of PulseAudio Playback (ms)
awake_01.wav16610pcm_s16le, 16000 Hz, 1 channels, s16, 256 kb39080~90
awake_02.wav10992pcm_s16le, 16000 Hz, 1 channels, s16, 256 kb/s34175~80
awake_03.wav8762pcm_s16le, 16000 Hz, 1 channels, s16, 256 kb/s27190~100
awake_04.wav6534pcm_s16le, 16000 Hz, 1 channels, s16, 256 kb/s20270~80
awake_05.wav18886pcm_s16le, 16000 Hz, 1 channels, s16, 256 kb/s58880~90
mic_close_tts.wav49310pcm_s16le, 16000 Hz, 1 channels, s16, 256 kb/s154080~90
mic_open.wav19608pcm_s16le, 16000 Hz, 1 channels, s16, 256 kb/s61080~90
hibernate.wav88930pcm_s16le, 44100 Hz, 2 channels, s16, 1411 kb/s50080~90

1.4. 说明

  1. 建立一次链接平均用时 100 毫秒
  2. 保持长链接会消耗 2%~3% 的CPU

为实现快速的播放 wav 文件,建议播放文件较小,类型相同的wav 音频,提前加载文件,并且保持长链接