• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            Codejie's C++ Space

            Using C++

            更新 - 使用libmpg123轉(zhuǎn)換MP3到WAVE

                一個(gè)更簡單的方法,不使用Frame,而是直接用Read方式;順便也修改幾個(gè)不對的地方。這種Decode方式更符合DSound的需要。主要改動(dòng)如下:
             1     while(true)
             2     {
             3         ret = mpg123_init();
             4         if(ret != MPG123_OK)
             5             break;
             6         mpg123_handle *= mpg123_new(NULL, &ret);
             7         if(h == NULL)
             8             break;
             9         ret = mpg123_open(h, ".\\orgrimmar_intro-moment.mp3");
            10         if(ret != MPG123_OK)
            11             break;
            12 
            13         long rate = 0;
            14         int channel = 0, encoding = 0;
            15         ret = mpg123_getformat(h, &rate, &channel, &encoding);    
            16         if(ret != MPG123_OK)
            17             break;
            18         if((encoding & MPG123_ENC_16) == MPG123_ENC_16)
            19             encoding = 16;
            20         else if((encoding & MPG123_ENC_32) == MPG123_ENC_32)
            21             encoding = 32;
            22         else
            23             encoding = 8;
            24 
            25         WAVE_HEADER header;
            26         InitWaveHeader(header, channel, rate, encoding, 0);
            27 
            28         UpdateWaveHeader(header, true);
            29         
            30         unsigned char buffer[32 * 1024];
            31         size_t size = 32 * 1024;
            32         size_t outsize = 0;
            33 
            34         do
            35         {
            36             ret = mpg123_read(h, buffer, size, &outsize);
            37             header.data_size += outsize;
            38 
            39             AppendWaveData((const char*)buffer, outsize);
            40 
            41         }while(ret == MPG123_OK);
            42 
            43         mpg123_close(h);
            44         mpg123_delete(h);
            45         mpg123_exit();
            46 
            47         header.waveform_chunk_size = header.data_size + 36;
            48 
            49         UpdateWaveHeader(header, false);
            50 
            51 
            52         break;
            53     }
            54 
            55     if(ret != MPG123_OK && ret != MPG123_DONE)
            56     {
            57             std::cout << "error : " << mpg123_plain_strerror(ret) << std::endl;
            58             return -1;
            59     }
            60 
            61     CloseWaveFile();


            posted on 2009-03-25 15:49 codejie 閱讀(885) 評論(3)  編輯 收藏 引用 所屬分類: C++

            評論

            # re: 更新 - 使用libmpg123轉(zhuǎn)換MP3到WAVE 2010-01-25 09:28 茅草屋

            請問樓主,這個(gè)庫能否支持多線程?  回復(fù)  更多評論   

            # re: 更新 - 使用libmpg123轉(zhuǎn)換MP3到WAVE 2010-01-25 09:33 codejie

            @茅草屋
            這個(gè)問題還得麻煩你參考庫的官方網(wǎng)站說明~  回復(fù)  更多評論   

            # re: 更新 - 使用libmpg123轉(zhuǎn)換MP3到WAVE 2010-03-01 16:42 茅草屋

            @codejie
            謝謝  回復(fù)  更多評論   

            公告

            Using C++

            導(dǎo)航

            統(tǒng)計(jì)

            留言簿(73)

            隨筆分類(513)

            積分與排名

            最新評論

            閱讀排行榜

            評論排行榜

            狠狠色丁香婷婷久久综合| 久久艹国产| 国产精品美女久久久免费| 欧美精品丝袜久久久中文字幕| 国产精品久久久久蜜芽| 色偷偷偷久久伊人大杳蕉| 成人国内精品久久久久影院VR | 亚洲乱码中文字幕久久孕妇黑人| 久久综合给久久狠狠97色| 久久99精品久久久久久不卡| 一本一本久久a久久综合精品蜜桃| 好久久免费视频高清| 国产色综合久久无码有码| 热久久国产精品| 国产精品一区二区久久不卡| 色婷婷久久综合中文久久一本| 99久久精品午夜一区二区| 久久天天躁狠狠躁夜夜2020一| 国产精品美女久久久| 久久亚洲精品人成综合网| 亚洲天堂久久久| 午夜视频久久久久一区 | 亚洲国产精品无码久久青草| 久久久青草久久久青草| 无码伊人66久久大杳蕉网站谷歌| 日本国产精品久久| 精品久久久久中文字| 久久久青草久久久青草| 久久免费精品一区二区| 国内精品久久人妻互换| 久久精品中文无码资源站| 精品久久久久中文字幕日本| 久久九九精品99国产精品| 日韩人妻无码一区二区三区久久 | 日韩美女18网站久久精品| 久久久精品久久久久久| 久久精品国产99久久丝袜| 无码人妻少妇久久中文字幕 | 久久精品国产久精国产一老狼| 亚洲精品tv久久久久久久久久| 亚洲欧美久久久久9999|