• <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++

            DSound的更新,以支持SetCurrentPosition功能

                查看了DirectSound的MSDN文檔,才發(fā)現(xiàn)DirectSoundBuffer的Primary Buffer和Second Buffer還是有很大區(qū)別的,就像SetCurrentPosition函數(shù)不支持Primary Buffer。
                這里是MSDN上的說(shuō)明:
            IDirectSoundBuffer8::SetCurrentPosition

            IDirectSoundBuffer8::SetCurrentPosition

            The SetCurrentPosition method sets the position of the play cursor, which is the point at which the next byte of data is read from the buffer.

            HRESULT SetCurrentPosition(
            DWORD dwNewPosition
            );

            Parameters

            dwNewPosition
            Offset of the play cursor, in bytes, from the beginning of the buffer.

            Return Values

            If the method succeeds, the return value is DS_OK. If the method fails, the return value may be one of the following error values:

            Return code
            DSERR_INVALIDCALL
            DSERR_INVALIDPARAM
            DSERR_PRIOLEVELNEEDED

            Remarks

            This method cannot be called on the primary buffer.

            If the buffer is playing, the cursor immediately moves to the new position and play continues from that point. If it is not playing, playback will begin from the new position the next time the Play method is called.



                相應(yīng)代碼修改如下,用于建立新的DirectSoundBuffer8對(duì)象。
             1 int CDSoundObject::CreateDSoundBuffer()
             2 {
             3     IDirectSoundBuffer* psbuffer = NULL;
             4 
             5     DSBUFFERDESC desc;
             6     memset(&desc, 0sizeof(DSBUFFERDESC));
             7     desc.dwSize = sizeof(DSBUFFERDESC);
             8     desc.dwFlags = DSBCAPS_GLOBALFOCUS | DSBCAPS_CTRLVOLUME | DSBCAPS_CTRLPOSITIONNOTIFY | DSBCAPS_LOCSOFTWARE;
             9     desc.dwBufferBytes = CDSoundObject::SIZE_DS_BUFFER;//header.data_size;
            10     desc.lpwfxFormat = &_fmtWave;
            11 
            12     if(_pDSBuffer != NULL)
            13         _pDSBuffer->Release();
            14 
            15     HRESULT hr = _pDS->CreateSoundBuffer(&desc, &psbuffer, NULL);
            16     if(hr != DS_OK)
            17         return -1;
            18     hr = psbuffer->QueryInterface(IID_IDirectSoundBuffer8, (void**)&_pDSBuffer);
            19     psbuffer->Release();
            20     if(hr != DS_OK)
            21         return -1;
            22 
            23     return 0;
            24 }


            posted on 2009-03-27 10:10 codejie 閱讀(926) 評(píng)論(0)  編輯 收藏 引用 所屬分類(lèi): C++

            公告

            Using C++

            導(dǎo)航

            統(tǒng)計(jì)

            留言簿(73)

            隨筆分類(lèi)(513)

            積分與排名

            最新評(píng)論

            閱讀排行榜

            評(píng)論排行榜

            久久久久国产精品三级网| 奇米影视7777久久精品| 日韩va亚洲va欧美va久久| 久久久久久国产精品美女| 2020久久精品国产免费| 热99re久久国超精品首页| 伊人久久大香线蕉精品不卡 | 日韩亚洲欧美久久久www综合网| 久久精品国产精品亜洲毛片| 亚洲乱码精品久久久久..| 色综合久久综合网观看| 亚洲国产精品无码久久久蜜芽| 婷婷综合久久中文字幕| 日产精品久久久一区二区| 香蕉久久永久视频| 国产高潮国产高潮久久久91| 久久人人爽人人爽人人AV东京热 | 青草久久久国产线免观| 99久久精品午夜一区二区| 亚洲综合日韩久久成人AV| 精品国产婷婷久久久| 久久精品九九亚洲精品天堂 | 91久久精品国产成人久久| 精品久久8x国产免费观看| 伊人久久久AV老熟妇色| 一级a性色生活片久久无少妇一级婬片免费放 | 日本道色综合久久影院| .精品久久久麻豆国产精品| 中文字幕日本人妻久久久免费| 久久婷婷人人澡人人| 久久精品成人免费观看97| 99国内精品久久久久久久| 亚洲国产精久久久久久久| 香港aa三级久久三级| 久久亚洲国产午夜精品理论片| 国产成人久久精品一区二区三区| 狠狠色丁香久久婷婷综合五月| 久久精品无码一区二区无码| av国内精品久久久久影院| 亚洲国产精久久久久久久| 久久国产三级无码一区二区|