播放MP3的问题

时间:2021-01-16 05:49:07
很多游戏或者软件会将所需要的音乐文件打包成一个文件,然后在使用的时候直接读取然后播放,那么在我们自己的程序中如何才能将打包好的文件直接读取出来并进行播放呢?
01.首先将要打包的3首MP3歌曲进行数据加密然后打包到一个文件中,这部分自己已经可以解决
02.程序现在要播放第2首歌曲,在程序中我已经将第2首MP3歌曲的数据解密并放到了变量a中,变量a是一个byte的数组变量
03.现在问题是如何直接播放这个存放在数组变量a的MP3数据

注意:请不要将变量a的数据写到文件后再进行播放,如果要写出到文件,那还不如直接播放MP3文件

找了很久还是没有找到合适的方法,请各位朋友指点指点,谢谢~

6 个解决方案

#1


你得想办法搞到一个播放接口吧大约.

找找网上的一些MP3播放库,记得有支持从缓冲区直接播放的

#2


用mciSendString函数   
  '===================look   here================   
          mciSendString   "close   OpenFile",   0&,   0,   0   
          mciSendString   "open   c:\1.mp3   alias   OpenFile   type   MPEGVideo",   0&,   0,   0   
          mciSendString   "play   OpenFile",0&,0,0   
  '============================================   

#3


引用 2 楼 CathySun118 的回复:
用mciSendString函数  
  '===================look  here================  
          mciSendString  "close  OpenFile",  0&,  0,  0  
          mciSendString  "open  c:\1.mp3  alias  OpenFile  type  MPEGVideo",  0&,  0,  0  
          mciSendString  "play  OpenFile",0&,0,0  
  '============================================  

用mcisendstring不是要打开指定文件吗?问题是我的数据是保存在数组变量a中啊,不是在文件中啊。

#4


sndPlaySound可以实现内存中的声音数据播放,但只能同时播放一路声音。
如果要混音的话,请查查DirectSoundBuffer方面的资料。
这里有sndPlaySound的例子,虽然不是vb的,但应该很容易看懂:http://support.microsoft.com/kb/q133064/

#5


一些Wave相关的API也可以实现楼主的功能,请查查语音网络传输部分的声音输出部分的资料。

#6


引用 4 楼 Modest 的回复:
sndPlaySound可以实现内存中的声音数据播放,但只能同时播放一路声音。 
如果要混音的话,请查查DirectSoundBuffer方面的资料。 
这里有sndPlaySound的例子,虽然不是vb的,但应该很容易看懂:http://support.microsoft.com/kb/q133064/

请问sndPlaySound是否可以播放MP3数据?还是只能播放WAV格式的?WAV格式占用容量太大了,如果音乐文件较多,那占用容量超大啊,有没有能够支持MP3的?

#1


你得想办法搞到一个播放接口吧大约.

找找网上的一些MP3播放库,记得有支持从缓冲区直接播放的

#2


用mciSendString函数   
  '===================look   here================   
          mciSendString   "close   OpenFile",   0&,   0,   0   
          mciSendString   "open   c:\1.mp3   alias   OpenFile   type   MPEGVideo",   0&,   0,   0   
          mciSendString   "play   OpenFile",0&,0,0   
  '============================================   

#3


引用 2 楼 CathySun118 的回复:
用mciSendString函数  
  '===================look  here================  
          mciSendString  "close  OpenFile",  0&,  0,  0  
          mciSendString  "open  c:\1.mp3  alias  OpenFile  type  MPEGVideo",  0&,  0,  0  
          mciSendString  "play  OpenFile",0&,0,0  
  '============================================  

用mcisendstring不是要打开指定文件吗?问题是我的数据是保存在数组变量a中啊,不是在文件中啊。

#4


sndPlaySound可以实现内存中的声音数据播放,但只能同时播放一路声音。
如果要混音的话,请查查DirectSoundBuffer方面的资料。
这里有sndPlaySound的例子,虽然不是vb的,但应该很容易看懂:http://support.microsoft.com/kb/q133064/

#5


一些Wave相关的API也可以实现楼主的功能,请查查语音网络传输部分的声音输出部分的资料。

#6


引用 4 楼 Modest 的回复:
sndPlaySound可以实现内存中的声音数据播放,但只能同时播放一路声音。 
如果要混音的话,请查查DirectSoundBuffer方面的资料。 
这里有sndPlaySound的例子,虽然不是vb的,但应该很容易看懂:http://support.microsoft.com/kb/q133064/

请问sndPlaySound是否可以播放MP3数据?还是只能播放WAV格式的?WAV格式占用容量太大了,如果音乐文件较多,那占用容量超大啊,有没有能够支持MP3的?