簡體   English   中英

使用C語言播放.wav文件

[英]play .wav file using c language

我被要求使用C語言播放.wav文件,我使用的編譯器是Devcpp。 我正在嘗試使用如下功能PlaySound()

PlaySound("C:/Users/wavfiles/13.1.wav", NULL, SND_FILENAME); 

如果我將目錄直接輸入到這樣的函數中,則可以成功播放聲音。

但是,我想將目錄設置為變量。 我創建一個帶有目錄列表的文本文件,然后提取所需的目錄,然后將其放入PlaySound()函數。 這是我的代碼的一部分:

FILE *fw;
char addr[1000]
char schapter[50];

while(fgets(addr, 1000, fw) != NULL) {
    if((strstr(addr, schapter)) != NULL) {   
        printf("\n%s", addr);
        PlaySound(addr, NULL, SND_FILENAME); 
    }
}

在這種情況下,目錄已分配給addraddr = "C:/Users/wavfiles/13.1.wav" ),然后將addr放入PlaySound() ,但它不起作用。

我在這個問題上困擾了很長時間,無法繼續前進。 如果有人可以給我建議或解決方案,我將不勝感激。 謝謝。

fgets()返回的字符串包含終端換行符。 您需要將其刪除以獲取文件名。

一種簡單的方法是使用strchr()定位換行符:

while (fgets(addr, 1000, fw) != NULL) {
    char *nl = strchr(addr, '\n');
    if (nl) *nl = 0;
    …
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM