;打开设备
;lpFileName-当前打开的音频文件路径
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
_Open proc lpFileName:DWORD
if stMciOpenwDeviceID
invoke _Close
endif
;初始化结构
mov stMciOpenlpstrDeviceType,L("MPEGVideo")
mov eax,lpFileName
mov stMciOpenlpstrElementName,eax
invoke mciSendCommand,0,MCI_OPEN,MCI_OPEN_ELEMENT or MCI_OPEN_TYPE,addr stMciOpen
;如果打开成功-返回0否则是其他值
if eax == 0
mov eax,TRUE
else
mov eax,FALSE
endif
ret_Open endp用socket传输mp3文件到本地计算机内存中保存,然后用你的播放器播放,播放完毕从内存中删除
如果是视频,就分段传输,每一段转换成独立文件,然后计算时间连续播放
媒体文件网络播放其实都是先下载在播放的,这个一般保存到内存中,播放完毕就清除,也就是所谓的缓存了要看播放什么音乐了噢,wav就单纯的读写数据就OK了。mp3就要再解码了。mp3没做过。
建议你先了解wav的文件格式,C程序是写分析wav的头文件,设置好声卡的属性,然后read文件,write声卡,网上有很多现成的代码。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)