|
楼主 |
发表于 2011-3-31 20:51:01
|
显示全部楼层
回复【8楼】yirenonege
我建议楼主费费心,写点教程,话说是好东西,话说这代码对我真没啥用,我建立楼主写写思路...比如说"本播放器代码使用到的flac解码代码模块来自于k9spud llc的traxmod"这个是怎么移植的...大体讲讲到哪里下载源码,怎么修改.好吧,我承认我是懒蛋...
-----------------------------------------------------------------------
此代码已经无需修改,已经是一个操作方便的纯WAV、FLAC播放器。
(仅支持一级子目录,在本播放器里称为ALUBM,音乐文件被称为TRACK.)
FLAC解码过程说白了很简单:
先进行flac文件初始化.并找到文件存放FLAC帧流开始的地方。
然后来看最顶层最重要的一个函数是
flac_decode_frame(fc, decoded_buf, flac_read_buf,bytesleft);
准备一个文件读入缓冲,作为存放要解码的帧的存放地点。这个类型是char字符串的。存放从文件读入的帧流信息。
注意这个大小必须大于max_flame_size.并且存放的必须以flac,frame信息头开头.此为flac_read_buf
再准备一个存放解码后要输出的输出缓冲,注意类型是32位 int型的。此为decoded_buf,大小必须为 2*max_block_size.
再准备一个FLACCONTEXT ,存放解码后音频信息,此为fc,fc的结构我不多说了,自己去看定义.
把这几个准备好,然后把他们的指针传递给 解码器,正常结束后,在fc会给出解码后的block大小(以sample计算),在decoded_buf得到解码后的数据,flac_read_buf则消耗了一定的字节数,所以要把消耗掉的字节数去掉并从文件补足需要的帧流信息.把decoded_buf得到的数据输出给音频DAC的输出缓冲。如此循环。
如果你没看明白我在说什么,那请当我什么都没说。
鱼已献上,渔略做修饰。合不合口味各位请自行品尝。最近我可能也不会很多时间花在这个上面。
搞到了好的相机,下面放一些“高清”图,呵呵:
(原文件名:1.JPG)
(原文件名:2.JPG)
(原文件名:3.JPG)
(原文件名:4.JPG)
(原文件名:5.JPG)
(原文件名:6.JPG)
(原文件名:7.JPG)
再来一段视频秀:
点击此处下载 ourdev_627531K9PNJY.rar(文件大小:66.01M) (原文件名:oopy_music_player_show.rar) |
|