Files
arcs/arcs-sdk/components/app_player/player/lisa_player_adapter.c
2026-08-13 16:50:52 +08:00

53 lines
1.5 KiB
C

#include <stdint.h>
#include "lisa_device.h"
#include "lisa_audio.h"
#define TAG "lisa_player_adapter"
#include "lisa_log.h"
#define AUDIO_DEVICE_NAME "audio0"
#define AUDIO_BUFFER_CNT 10
#define AUDIO_BUFFER_SAMPLES 256
void audio_play_send_pcm(char *data, int size)
{
static lisa_device_t *audio_dev = NULL;
int ret;
if (audio_dev == NULL) {
audio_dev = lisa_device_get(AUDIO_DEVICE_NAME);
if (!lisa_device_ready(audio_dev)) {
LOGE("Error: %s device not ready", AUDIO_DEVICE_NAME);
return;
}
lisa_audio_play_config_t play_config = {
.format =
{
.sample_rate = LISA_AUDIO_RATE_16K,
.channels = LISA_AUDIO_CH_LEFT,
.sample_bits = LISA_AUDIO_BIT_16,
},
.gain =
{
.analog_gain = 0,
.digital_gain = -12,
},
.buffer_count = AUDIO_BUFFER_CNT,
.buffer_samples = AUDIO_BUFFER_SAMPLES,
};
ret = lisa_audio_play_config(audio_dev, &play_config);
if (ret != LISA_DEVICE_OK) {
LOGE("play_config: %d", ret);
return;
}
ret = lisa_audio_play_start(audio_dev);
if (ret != LISA_DEVICE_OK) {
LOGE("audio play start fail: %d", ret);
return;
}
}
ret = lisa_audio_play_write(audio_dev, (int16_t *)data, size / 2);
}