• <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上的說明:
            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對象。
             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) 評論(0)  編輯 收藏 引用 所屬分類: C++

            公告

            Using C++

            導(dǎo)航

            統(tǒng)計

            留言簿(73)

            隨筆分類(513)

            積分與排名

            最新評論

            閱讀排行榜

            評論排行榜

            久久精品亚洲福利| 中文字幕精品无码久久久久久3D日动漫 | 嫩草伊人久久精品少妇AV| 无码超乳爆乳中文字幕久久 | 亚洲国产精品无码久久久秋霞2| 久久久一本精品99久久精品88| 久久天天躁狠狠躁夜夜96流白浆| 国产精品久久久久久一区二区三区 | 久久精品国产亚洲av瑜伽| 久久综合九色综合网站| 久久av免费天堂小草播放| AV色综合久久天堂AV色综合在| 久久久亚洲裙底偷窥综合| 国内精品久久国产大陆| 亚洲国产精品无码久久| 久久精品国产一区二区| 久久精品99久久香蕉国产色戒 | 久久露脸国产精品| 99久久伊人精品综合观看| 久久精品午夜一区二区福利| 久久久精品波多野结衣| 91精品国产综合久久久久久| 亚洲色大成网站WWW久久九九| 2021国产精品午夜久久| 久久99国产一区二区三区| 狠狠色婷婷综合天天久久丁香| 亚洲国产精品18久久久久久| 久久只这里是精品66| 久久精品国产亚洲AV不卡| 久久久久黑人强伦姧人妻| 中文字幕一区二区三区久久网站| 狠色狠色狠狠色综合久久| 久久综合88熟人妻| 亚洲欧美日韩久久精品第一区| 午夜精品久久久内射近拍高清| 欧美精品丝袜久久久中文字幕| 国产69精品久久久久99尤物| 青草影院天堂男人久久| 久久精品99无色码中文字幕| 国产ww久久久久久久久久| 国产精品久久久久一区二区三区 |