LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 987|回复: 7

关于C++中NEW的问题

[复制链接]
发表于 2004-8-7 12:27:40 | 显示全部楼层 |阅读模式
C++中使用NEW到底一次可以申请多大的内存?是不是只同物理内存有关?
我一次NEW一个5M的内存行不行(我的内存总共512M)。我想一次将一首MP3歌一次考入内存,然后在内存中播放,但为什么播放出来的是噪音???问题在什么地方?
发表于 2004-8-7 14:49:09 | 显示全部楼层
你所说的new的问题我不太懂。
不过呢,mp3文件是按照MPEG (Audio)标准压缩的音频文件,必须用解码器才能还原成波形文件并正常播放。
你不妨试试把WAV文件放入内存,然后播放。顺便把试验的结果return到这里。
发表于 2004-8-7 20:11:21 | 显示全部楼层
NEW分配的内存是一块连续的内存块,和所用的系统有关,只要系统允许并且有那么大块的内存一般都能分配成功。
PS:我记性不好,不知道正确率多少……
发表于 2004-8-8 09:44:11 | 显示全部楼层
new分配的内存大小是有限制的,具体是多少,我也记不清楚了。请在编程时务必检查返回值的有效性。
发表于 2004-8-9 08:36:15 | 显示全部楼层
楼主是如何在内存中播放的
如何解码
解码后一个sample占多少位
是单声道的还是多声道的
这些参数必须和声卡设置一致才能播放
发表于 2004-8-9 10:27:48 | 显示全部楼层
我有些疑问:
对于一块功能比较完备的声卡,16bit或是精度更低的PCM波形,它应该都能播放;能年播多声道的应该也能播单声道。所以,只要播放的参数是声卡所允许的,应该就可以实现的吧。

最初由 doubleelec 发表
楼主是如何在内存中播放的
如何解码
解码后一个sample占多少位
是单声道的还是多声道的
这些参数必须和声卡设置一致才能播放
发表于 2004-8-9 10:58:25 | 显示全部楼层
当然可以

我的意思是:你是用什么软件播的还是自己写声卡
如果是后者那就要自己考虑格式问题了
并不是把数据放上去就能出音乐的
发表于 2004-8-9 19:00:33 | 显示全部楼层
用内存流类来做,不会很难吧?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表