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

            積分與排名

            最新評論

            閱讀排行榜

            評論排行榜

            久久只这里是精品66| 高清免费久久午夜精品| 伊人久久大香线蕉综合影院首页 | 国产精品女同一区二区久久| 久久男人中文字幕资源站| 亚洲精品无码成人片久久| 国产精品VIDEOSSEX久久发布| 久久妇女高潮几次MBA| 久久艹国产| 99久久精品国产一区二区| 国产精品久久久久AV福利动漫| 久久精品成人欧美大片| 狠狠色婷婷综合天天久久丁香 | 久久精品国产网红主播| 亚洲国产精品成人久久蜜臀 | 久久精品无码一区二区三区| 97久久国产综合精品女不卡| 亚洲午夜福利精品久久| 欧美色综合久久久久久| 精品视频久久久久| 久久香蕉一级毛片| 国产一级持黄大片99久久| www.久久热| 久久精品这里热有精品| 欧美久久综合性欧美| 久久亚洲精品中文字幕三区| 精品午夜久久福利大片| 99国产精品久久久久久久成人热| 久久久久亚洲AV无码网站| 亚洲中文字幕久久精品无码APP | 91精品国产高清久久久久久91| 久久91综合国产91久久精品| 日本免费久久久久久久网站| 亚洲成人精品久久| 久久久精品人妻无码专区不卡| 国产免费久久久久久无码| 狠狠综合久久AV一区二区三区 | 成人资源影音先锋久久资源网| 狠狠狠色丁香婷婷综合久久五月| 国产精品久久永久免费| 精品久久人人做人人爽综合|