1.播放MP3文件的API函數
可以使用PlaySound()函數播放mp3音頻,該函數原型位于windows.h。
PlaySound函數的聲明為:
BOOL PlaySound(LPCSTR pszSound, HMODULE hwnd,DWORD fdwSound);
參數pszSound是指定了要播放聲音的字符串。
參數hwnd是應用程序的實例句柄,除非pszSound的指向一個資源標識符(即fdwSound被定義為SND_RESOURCE),否則必須設置為NULL。
參數fdwSound是標志的組合,如下表所示。若成功則函數返回TRUE,否則返回FALSE。
使用PlaySound函數時需要在#include后面加上(注意:不能加在前面):
操作系統除了協調應用程序的執行、內存分配、系統資源管理外,同時也是一個很大的服務中心,調用這個服務中心的各種服務(每一種服務是一個函數),可以幫助應用程序達到開啟視窗、描繪圖形、使用周邊設備的目的,由于這些函數服務的對象是應用程序(Application),所以稱之為Application Programming Interface,簡稱API函數。
2.易語言api播放聲音的函數有那些 我找到了PlaySoundA 可是完全不懂
這個API只能播放wav格式的音頻文件!MP3不行第三那個參數常量含義,至于這些常量轉換成數值是多少,可以用ET助手,按F12,輸入#就會有語法提示!鼠標移過去可以看到數值SND_APPLICATION用應用程序指定的關聯來播放聲音。
SND_ALIASpszSound參數指定了注冊表或*中的系統事件的別名。SND_ALIAS_IDpszSound參數指定了預定義的聲音標識符。
SND_ASYNC用異步方式播放聲音,PlaySound函數在開始播放后立即返回。SND_FILENAMEpszSound參數指定了WAVE文件名。
SND_LOOP重復播放聲音,必須與SND_ASYNC標志一塊使用。SND_MEMORY播放載入到內存中的聲音,此時pszSound是指向聲音數據的指針。
SND_NODEFAULT不播放缺省聲音,若無此標志,則PlaySound在沒找到聲音時會播放缺省聲音。SND_NOSTOPPlaySound不打斷原來的聲音播出并立即返回FALSE。
SND_NOWAIT如果驅動程序正忙則函數就不播放聲音并立即返回。SND_PURGE停止所有與調用任務有關的聲音。
若參數pszSound為NULL,就停止所有的聲音,否則,停止pszSound指定的聲音。SND_RESOURCEpszSound參數是WAVE資源的標識符,這時要用到hmod參數。
SND_SYNC同步播放聲音,在播放完后PlaySound函數才返回。SND_SYSTEM如果是背景窗口,如果這個標志被設置,聲音是分配到音頻會議系統通知的聲音。
系統音量控制程序(sndvol)顯示音量滑塊控制系統通知的聲音。設置該標志將下控制音量滑塊。
如果沒有設置該標志,聲音是分配到默認的音頻會議的應用進程。更多信息,請參閱文檔的核心音頻API的軟件開發工具包。
* playsound 函數
1、右鍵點擊“xxx resources”,選擇“import”
2、文件類型選擇“Wave File(*.wav)”
3、選擇對應的wav文件
4、修改導入的資源ID為IDR_STARTWIN
5、在工程的“setting”--"link"中包含*
6、包含頭文件#include "mmsystem.h"
先引用了樓上有的,不好意思啦
然后PlaySound(MAKEINTRESOURCE(IDR_STARTWIN,。。。。。.)
這樣就可以了
4.如何實現API背景音樂播放
第一篇寫的這些內容很簡單,跟鏈接作者寫的幾乎一樣。
他寫的比較復雜,有些實現方式也不一樣,所以自己寫個博客記錄一下。O(∩_∩)O~這個播放器很簡單,如果你是什么Api都不知道,看了這個兩天就寫完了,你可以邊看邊查相關的API是干嘛用的,如果之前都了解了相關的API,那么一天就能編完。
做一個播放器的大致思路是什么呢?播放器當然是要有播放的功能咯,這是我在廢話。這個播放器是不帶下載功能的,所以肯定是從你手機中獲取已經存在的音樂。
于是第一步就是獲取手機中的音樂信息,這個跟播放器的界面沒什么聯系,那你可以把它寫成一個工具類,叫做GetMusicListUtil,專門用來獲取手機音樂信息的類。 上代碼:public class GetMusicListUtil { /** * 從手機中得到所有的音樂,放在list中保存 * * @param context * @return * @author Yang */ public static List
這個和原作者寫的沒什么區別,另外其中的Mp3Info是一個javabean,如下所示:package *er;public class Mp3Info{ public long id; public String title; public String artist; public long duration; public long size; public String url; public long getId() { return id; } public void setId(long id) { * = id; } public String getTitle() { return title; } public void setTitle(String title) { * = title; } public String getArtist() { return artist; } public void setArtist(String artist) { * = artist; } public long getDuration() { return duration; } public void setDuration(long duration) { *on = duration; } public long getSize() { return size; } public void setSize(long size) { * = size; } public String getUrl() { return url; } public void setUrl(String url) { * = url; }}有了音樂的信息之后,我們可以開始編輯界面了,我的界面里面的那些個圖片也是在原創作者頁面下載。
5.如何在VC++程序中編代碼播放聲音
兩種方法啊:
一種是播放wave文件的聲音,這個很簡單,可以用api函數PlaySound,但是wave聲音有個缺點就是不能覆蓋播放,就是只能一次播放一個聲音文件,停下來后才能播放其他聲音
同時可以把wave文件作為資源文件,也就弄到了內存里面了
第二種方法使用MIDI接口播放MIDI聲音,不過這個播放起來比較復雜,你可以在網上搜到大量的代碼,這個有點是可覆蓋播放,并且MIDI音樂文件占的空間特別小,這個但不能放入內存中,只能隨文件一起存放在相應位置
至于反復調用,這些函數都提供了響應的參數,可以去msdn中搜到。
還有不明白的可以call我
轉載請注明出處華閱文章網 » 播放簡短聲音的api