Audio
更新时间:2017-08-08 阅读:14626
目录
Fireduino Audio
Fireduino 内部集成了HIFI级高质量的音频解码器、专业的硬件MP3解码加速器、硬件低损耗音频解码加速器和丰富的外设,支持WI-FI协议,支持24bits 192k Hz 采样率、低损耗、低功耗的音频解码。
Fireduino 支持播放在SD卡以及网络上的音频文件,解码格式支持APE/FLAC/WAV/MP3/WMA/AAC/OGG;
Fireduino Audio API 提供了播放、暂停、停止、以及设置和获取声音大小等。
Fireduino Audio 相关结构体
// playing status typedef enum { AudioFailed = 0, AudioPlay , AudioPause , AudioStop , }AudioStatus;
typedef enum { AUDIO_SD, // SD AUDIO_NET // NET }Storage;
Fireduino Audio API
begin(...)
说明 初始化 Audio。
语法 Audio.begin(AUDIO_NET); Audio.begin(AUDIO_SD);
参数 Storage:AUDIO_SD、AUDIO_NET
返回 无
playFile(...)
说明 播放指定文件。
语法 Audio.playFile("\\4.MP3");
参数 char * :文件路径
返回 无
playNetFile(...)
说明 播放网络资源的地址(仅支持http协议)。
语法 Audio.playNetFile("http://192.168.199.240/%E6%89%93%E8%80%81%E8%99%8E.MP3");
参数 char* :网络资源地址。
返回 无
setVolume(...)
说明 设置声音大小
语法 Audio. setVolume(16);
参数 int :声音大小(0~31)
返回 无
getVolume(...)
说明 获取声音大小
语法 Audio. getVolume();
参数 无
返回 音量大小值
pause()
说明 暂停播放。
语法 Audio. pause();
参数 无
返回 无
resume()
说明 恢复播放。
语法 Audio. resume();
参数 无
返回 无
stop()
说明 停止播放。
语法 Audio. stop();
参数 无
返回 无
getStatus()
说明 获取播放状态。
语法 Audio. getStatus();
参数 无
返回 返回状态
end()
说明 结束使用Audio,与begin 相反。
语法 Audio. end();
参数 无
返回 无
Fireduino Audio 示例程序
#include <Arduino.h> #include "TF.h" #include "Audio.h" #include <WiFi.h> char ssid[] = "Fireduino"; // your network SSID (name) char pass[] = "12345678"; // your network password int status = WL_IDLE_STATUS; //#define PLAY_SD void printWifiStatus(); void setup() { Serial.begin(115200); Serial.print("\r\narduino setup ...\r\n"); if(!SD.begin()) { Serial.println("sd init err\r\n"); while(1); } #ifndef PLAY_SD // check for the presence of the shield: if (WiFi.status() == WL_NO_SHIELD) { Serial.println("WiFi shield not present"); // don't continue: while (true); } String fv = WiFi.firmwareVersion(); if (fv != "1.1.0") { Serial.println("Please upgrade the firmware"); } // attempt to connect to Wifi network: while (status != WL_CONNECTED) { Serial.print("Attempting to connect to SSID: "); Serial.println(ssid); // Connect to WPA/WPA2 network. Change this line if using open or WEP network: status = WiFi.begin(ssid, pass); // wait 10 seconds for connection: // delay(10000); } Serial.println("Connected to wifi"); printWifiStatus(); #endif #ifdef PLAY_SD Audio.begin(AUDIO_SD); if(Audio) { Audio.playFile("\\4.MP3"); } #else Audio.begin(AUDIO_NET); Audio.playNetFile("http://192.168.199.240/%E6%89%93%E8%80%81%E8%99%8E.MP3"); #endif } void loop() { Serial.println("loop"); #ifdef PLAY_SD if(Audio.getStatus() == AudioStop) { Audio.playFile("\\3.MP3"); } #else if(Audio.getStatus() == AudioStop) { Audio.playNetFile("http://192.168.199.240/%E6%89%93%E8%80%81%E8%99%8E.MP3"); } #endif } #ifndef PLAY_SD void printWifiStatus() { // print the SSID of the network you're attached to: Serial.print("SSID: "); Serial.println(WiFi.SSID()); // print your WiFi shield's IP address: IPAddress ip = WiFi.localIP(); Serial.print("IP Address: "); Serial.println(ip); // print the received signal strength: long rssi = WiFi.RSSI(); Serial.print("signal strength (RSSI):"); Serial.print(rssi); Serial.println(" dBm"); } #endif