Simple audio playback sample.
Dependencies: mbed-os-lychee EasyPlayback
このサンプルは 「GR-LYCHEE」ではじめる電子工作 で紹介しています。
出版時と内容が異ならないよう、各ライブラリはアップデートせずに使用してください。
このサンプルの最新バージョンは下記から入手できます。最新バージョンは本の内容と一部処理が異なります。
https://github.com/d-kato/GR-Boards_Audio_WAV
main.cpp
- Committer:
- dkato
- Date:
- 2019-01-15
- Revision:
- 3:879164c8d626
- Parent:
- 0:34a2fd49a1ee
File content as of revision 3:879164c8d626:
#include "mbed.h" #include "SdUsbConnect.h" #include "EasyPlayback.h" #include "EasyDec_WavCnv2ch.h" #define FNAME_LEN (64) #define MOUNT_NAME "storage" static InterruptIn skip_btn(USER_BUTTON0); static EasyPlayback AudioPlayer; static void skip_btn_fall(void) { AudioPlayer.skip(); } int main() { DIR * d; struct dirent * p; char file_path[sizeof("/"MOUNT_NAME"/") + FNAME_LEN]; SdUsbConnect storage(MOUNT_NAME); AudioPlayer.add_decoder<EasyDec_WavCnv2ch>(".wav"); // decoder setting AudioPlayer.add_decoder<EasyDec_WavCnv2ch>(".WAV"); // decoder setting AudioPlayer.outputVolume(0.5); // Volume control (min:0.0 max:1.0) skip_btn.fall(&skip_btn_fall); // button setting while (1) { storage.wait_connect(); d = opendir("/"MOUNT_NAME"/"); // file search while ((p = readdir(d)) != NULL) { size_t len = strlen(p->d_name); if (len < FNAME_LEN) { sprintf(file_path, "/%s/%s", MOUNT_NAME, p->d_name); // make file path printf("%s\r\n", file_path); AudioPlayer.play(file_path); // playback } } closedir(d); } }