Доброе утро.
Не получается отправить аудиофайл на устройство.
Имеется следующий код, который отправляет через POST http на устройство api синтаксис запроса (включает воспроизведение на устройстве), далее стримит аудиофайл. Используется lpulse - pa_simple_new ().
При запуске собранного файла:
http отправляется, устройство отрабатывает, но аудио не проигрывается
при отправке в терминале вылетает следующая ошибка
Connect to: 192.168.13.122
cgiplay_AudioOut_HTTP.cpp: pa_simple_new() failed: No such file or directory
Segmentation fault (core dumped)
Часть кода:
int main(int argc, char*argv[]) {
char *servermessage;
const char *header = "POST /cgi-bin/transmitaudio_cgi?user=admin&pwd=Admin123 HTTP/1.1\r\nConnection: Keep-Alive\r\nContent-Type: G.711U;boundary=audio\r\n\r\n";
const char *audio = "--audio";
fd = socket_connect("192.168.2.38", atoi("80"));
write(fd, header, strlen(header));
/* The Sample format to use */
static const pa_sample_spec ss = {
.format = PA_SAMPLE_ULAW,
.rate = 8000,
.channels = 1
};
pa_simple *s_in, *s_out = NULL;
int ret = 1;
int error;
/* Create a new playback stream */
if (!(s_out = pa_simple_new(NULL, argv[0], PA_STREAM_PLAYBACK, NULL, "123", &ss, NULL, NULL, &error))) {
fprintf(stderr, __FILE__": pa_simple_new() failed: %s\n", strerror(errno));
goto finish;
}
for (;;) {
uint8_t buf[BUFSIZE];
ssize_t r;
if (pa_simple_read(s_in, buf, sizeof(buf), &error) < 0) {
fprintf(stderr, __FILE__": read() failed: %s\n", strerror(errno));
goto finish;
}
if(write(fd, buf, BUFSIZE) != BUFSIZE)
printf("\nErr\n");
if(write(fd, audio, 7) != 7)
printf("\nErr\n");*/
if (pa_simple_write(s_out, buf, sizeof(buf), &error) < 0) {
fprintf(stderr, __FILE__": pa_simple_write() failed: %s\n", strerror(errno));
goto finish;
}
}
НЕ пойму где в коде указать аудиофайл, который нужно стримить.
Щас, где pa_simple_new "123" - имя аудиофайла, но я так понимаю не верно.
Пользовался
Pulse