2015-01-23 3 views
1

Я хочу играть в mp3-файлы в Интернете, не загружая их. Таким образом, я использую Libcurl, чтобы получить его как поток в памяти, как это:Воспроизвести mp3-файл в C

static size_t use_data(void *ptr, size_t size, size_t nmemb, FILE *stream) { 
    /* stream is NULL */ 
    /* What to do with the stream of data ? */ 
} 

CURLcode download_file(const char *url, const char *path, curl_progress_callback progress) { 
    CURL *curl; 
    CURLcode res = 0; 
    FILE *fp; 
    if ((curl = curl_easy_init())) { 
     if (progress) { 
      curl_easy_setopt(curl, CURLOPT_NOPROGRESS, 0); 
      curl_easy_setopt(curl, CURLOPT_PROGRESSFUNCTION, progress); 
     } 
     curl_easy_setopt(curl, CURLOPT_URL, url); 
     curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, use_data); 
     res = curl_easy_perform(curl); 
     /* always cleanup */ 
     curl_easy_cleanup(curl); 
     fclose(fp); 
    } 
    return res; 
} 

Как я могу разобрать поток в памяти для воспроизведения звуков?

+0

Есть много возможных ответов на ваш вопрос. –

+0

@iharob: Ну, как кажется, я не получаю ответов. –

+0

Да, потому что вы должны задать конкретный вопрос. И ваш вопрос очень неоднозначен. Вы искали в библиотеках, которые могут помочь воспроизводить mp3? –

ответ

2

Самый простой способ для вас ИМХО будет использовать легкую библиотеку MP3-декодирования. Например, minimp3 выполняет свою работу и состоит всего из 2 файлов.

http://keyj.emphy.de/minimp3

API-интерфейс очень прост и пример использования можно найти здесь: https://github.com/corporateshark/PortAMP/tree/master/src/Decoders/MP3

 Смежные вопросы

  • Нет связанных вопросов^_^