• <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 閱讀(919) 評論(0)  編輯 收藏 引用 所屬分類: C++

            公告

            Using C++

            導(dǎo)航

            統(tǒng)計

            留言簿(73)

            隨筆分類(513)

            積分與排名

            最新評論

            閱讀排行榜

            評論排行榜

            国产免费久久精品99re丫y| 久久精品国产WWW456C0M| 国产精品久久久久久久久久影院 | 久久亚洲精精品中文字幕| 久久精品无码午夜福利理论片| 久久久久久亚洲Av无码精品专口| 国产成人香蕉久久久久| 亚洲国产天堂久久综合| 国产成人无码精品久久久性色| 久久www免费人成精品香蕉| 中文成人久久久久影院免费观看| 久久99国产乱子伦精品免费| 亚洲国产精品一区二区久久| 97精品国产97久久久久久免费| 国产亚洲精久久久久久无码AV| 亚洲精品无码久久久久sm| A级毛片无码久久精品免费| 亚洲狠狠婷婷综合久久久久| 久久伊人亚洲AV无码网站| 少妇人妻88久久中文字幕| 亚洲精品99久久久久中文字幕| 精品久久久久久国产牛牛app| 色综合久久久久无码专区| 亚州日韩精品专区久久久| 久久久青草久久久青草| 成人久久精品一区二区三区| 婷婷五月深深久久精品| 国产成人精品综合久久久久| 午夜视频久久久久一区 | 91精品国产91久久久久久| 久久亚洲美女精品国产精品| 久久青青草原亚洲av无码app| 久久久久久精品免费看SSS| 久久人人爽人人爽人人片AV高清| 99久久香蕉国产线看观香| 国产精品成人精品久久久| 国产精品VIDEOSSEX久久发布| 久久精品国产一区二区三区| 99久久国产亚洲高清观看2024 | 久久天天婷婷五月俺也去| 中文字幕精品久久久久人妻|