提问人:dinghy 提问时间:3/18/2023 更新时间:3/18/2023 访问量:142
尝试在连接蓝牙时收到警报
Trying to get an alert when bluetooth is connected
问:
初学者寻求帮助。 当 esp32 蓝牙连接到扬声器时,我试图收到警报。 我在循环中尝试了代码,但得到了“is_connected()”未声明错误。 我已链接到 BluetoothA2DPSource.h 和 cpp 文件。 在它们中,我找到了以下参考资料,尽管我不确定如何/是否使用它们。
虚拟布尔值 is_connected();在 BluetoothA2DPSource.h 文件中找到了这个
bool BluetoothA2DPSource::is_connected(){ // 在 BluetoothA2DPSource.cpp 文件中找到这个 返回 s_a2d_state == APP_AV_STATE_CONNECTED;}
我还在 AudioA2DP.h 文件中找到了一些参考资料。链接如下。
https://github.com/pschatzmann/arduino-audio-tools/blob/main/src/AudioLibs/AudioA2DP.h
https://github.com/pschatzmann/ESP32-A2DP/blob/main/src/BluetoothA2DPSource.h
https://github.com/pschatzmann/ESP32-A2DP/blob/main/src/BluetoothA2DPSource.cpp
/**
@file base-player-a2dp.ino
@author Phil Schatzmann
@brief Sketch which uses the A2DP callback to provide data from the AudioPlayer via a Queue
@version 0.1
@date 2022-12-04
@copyright Copyright (c) 2022
*/
#include "AudioTools.h"
#include "AudioLibs/AudioA2DP.h"
#include "AudioLibs/AudioSourceSDFAT.h"
#include "AudioCodecs/CodecMP3Helix.h"
#include "AudioLibs/AudioKit.h"
const int led = 5;
int buffer_count = 30;
int buffer_size = 512;
const char *startFilePath = "/";
const char* ext = "mp3";
AudioSourceSDFAT source(startFilePath, ext, PIN_AUDIO_KIT_SD_CARD_CS);
MP3DecoderHelix decoder;
//Setup of synchronized buffer
SynchronizedNBuffer<uint8_t> buffer(buffer_size, buffer_count, portMAX_DELAY, 10);
QueueStream<uint8_t> out(buffer); // convert Buffer to Stream
AudioPlayer player(source, out, decoder);
BluetoothA2DPSource a2dp;
// Provide data to A2DP
int32_t get_data(uint8_t *data, int32_t bytes) {
size_t result_bytes = buffer.readArray(data, bytes);
//LOGI("get_data_channels %d -> %d of (%d)", bytes, result_bytes , buffer.available());
return result_bytes;
}
void setup() {
Serial.begin(115200);
AudioLogger::instance().begin(Serial, AudioLogger::Warning);
pinMode(led, OUTPUT);
// sd_active is setting up SPI with the right SD pins by calling
SPI.begin(PIN_AUDIO_KIT_SD_CARD_CLK, PIN_AUDIO_KIT_SD_CARD_MISO, PIN_AUDIO_KIT_SD_CARD_MOSI, PIN_AUDIO_KIT_SD_CARD_CS);
// start QueueStream
out.begin();
// setup player
player.setDelayIfOutputFull(0);
player.setVolume(0.6);
player.begin();
// fill buffer with some data
player.getStreamCopy().copyN(5);
// start a2dp source
Serial.println("starting A2DP...");
a2dp.start_raw("HW2-915", get_data);
Serial.println("Started!");
}
void loop() {
if (is_connected()) {
digitalWrite(led, HIGH);
}
player.copy();
}
答: 暂无答案
评论
is_connected()
a2dp.is_connected()
digitalWrite(led, a2dp.is_connected())