
- •Приложение Глобальные функции acmDriverAdd
- •AcmDriverEnum
- •AcmDriverEnumCallback
- •AcmDriverPriority
- •AcmDriverProc
- •AcmDriverRemove
- •AcmFilterChoose
- •AcmFilterChooseHookProc
- •AcmFilterEnum
- •AcmFilterEnumCallback
- •AcmFilterTagEnum
- •AcmFilterTagEnumCallback
- •AcmFormatChoose
- •AcmFormatChooseHookProc
- •AcmFormatEnum
- •AcmFormatEnumCallback
- •AcmFormatSuggest
- •AcmFormatTagDetails
- •AcmFormatTagEnum
- •AcmFormatTagEnumCallback
- •AcmMetrics
- •AcmStreamClose
- •AcmStreamConvert
- •AcmStreamConvertCallback
- •AcmStreamOpen
- •AcmStreamPrepareHeader
- •AcmStreamSize
- •AcmStreamUnprepareHeader
- •AfxGetApp
- •AfxGetInstanceHandle
- •AfxGetInstanceHandle
- •AuxGetDevCaps
- •AuxGetNumDevs
- •AuxGetVolume
- •AuxSetVolume
- •CoCreateInstance
- •CoInitialize
- •CommDlgExtendedError
- •CopyMemory
- •CoUninitialize
- •CreateEvent
- •CreateWaitableTimer
- •CreateWindowEx
- •DirectDrawCreate
- •DirectSoundCaptureCreate
- •DirectSoundCaptureEnumerate
- •DirectSoundCreate
- •DirectSoundEnumerate
- •DsEnumCallback
- •EnableWindow
- •FillMemory
- •FormatMessage
- •GetCurrentDirectory
- •GetDiskFreeSpace
- •GetDlgItem
- •GetLastError
- •GetOpenFileName
- •GetOpenFileNamePreview
- •GetSaveFileName
- •GetSaveFileNamePreview
- •GetTickCount
- •GetWindowRect
- •KillTimer
- •MciGetCreatorTask
- •MciGetDeviceId
- •MciGetErrorString
- •MciGetYieldProc
- •MciSendCommand
- •MciSendString
- •MciSetYieldProc
- •MciWndCreate
- •MciWndRegisterClass
- •MessageBeep
- •MessageBox
- •MmioAdvance
- •MmioAscend
- •MmioClose
- •MmioCreateChunk
- •MmioDescend
- •MmioFlush
- •MmioGetInfo
- •MmioInstallIoProc
- •MmioOpen
- •MmioProc
- •MmioRead
- •MmioRename
- •MmioSeek
- •MmioSendMessage
- •MmioSetBuffer
- •MmioSetInfo
- •MmioStringToFourcc
- •MmioWrite
- •MsgWaitForMultipleObjects
- •OutputDebugString
- •PlaySound
- •PulseEvent
- •QueryPerformanceCounter
- •QueryPerformanceFrequency
- •RegisterWindowMessage
- •ResetEvent
- •SetCurrentDirectory
- •SetCursor
- •SetDiBitsToDevice
- •SetEvent
- •SetTimer
- •SndPlaySound
- •TimeBeginPeriod
- •TimeEndPeriod
- •TimeGetDevCaps
- •TimeGetSystemTime
- •TimeGetTime
- •TimeKillEvent
- •TimeProc
- •TimerProc
- •TimeSetEvent
- •WaitForSingleObject
- •WaveInAddBuffer
- •WaveInGetDevCaps
- •WaveInGetErrorText
- •WaveInGetNumDevs
- •WaveInOpen
- •WaveInPrepareHeader
- •WaveInProc
- •WaveInReset
- •WaveInStart
- •WaveInStop
- •WaveInUnprepareHeader
- •WaveOutBreakLoop
- •WaveOutClose
- •WaveOutGetDevCaps
- •WaveOutGetErrorText
- •WaveOutGetNumDevs
- •WaveOutGetPitch
- •WaveOutGetPlaybackRate
- •WaveOutGetPosition
- •WaveOutGetVolume
- •WaveOutOpen
- •WaveOutPause
- •WaveOutPrepareHeader
- •WaveOutProc
- •WaveOutReset
- •WaveOutRestart
- •WaveOutSetPitch
- •WaveOutSetPlaybackRate
- •WaveOutSetVolume
- •WaveOutUnprepareHeader
- •WaveOutWrite
- •WinHelp
- •ZeroMemory
- •Интерфейсы
- •IDirectSound
- •IDirectSound::Compact
- •IDirectSound::CreateSoundBuffer
- •IDirectSound::DuplicateSoundBuffer
- •IDirectSound::GetCaps
- •IDirectSound::GetSpeakerConfig
- •IDirectSound::Initialize
- •IDirectSound::SetCooperativeLevel
- •IDirectSound::SetSpeakerConfig
- •IDirectSoundBuffer
- •IDirectSoundBuffer::GetCaps
- •IDirectSoundBuffer::GetCurrentPosition
- •IDirectSoundBuffer::GetFormat
- •IDirectSoundBuffer::GetFrequency
- •IDirectSoundBuffer::GetPan
- •IDirectSoundBuffer::GetStatus
- •IDirectSoundBuffer::GetVolume
- •IDirectSoundBuffer::Lock
- •IDirectSoundBuffer::Play
- •IDirectSoundBuffer::Restore
- •IDirectSoundBuffer::SetCurrentPosition
- •IDirectSoundBuffer::SetFormat
- •IDirectSoundBuffer::SetFrequency
- •IDirectSoundBuffer::SetPan
- •IDirectSoundBuffer::SetVolume
- •IDirectSoundBuffer::Stop
- •IDirectSoundBuffer::Unlock
- •IDirectSoundCapture
- •IDirectSoundCapture::CreateCaptureBuffer
- •IDirectSoundCapture::GetCaps
- •IDirectSoundCaptureBuffer
- •IDirectSoundCaptureBuffer::GetCaps
- •IDirectSoundCaptureBuffer::GetCurrentPosition
- •IDirectSoundCaptureBuffer::GetFormat
- •IDirectSoundCaptureBuffer::GetStatus
- •IDirectSoundCaptureBuffer::Lock
- •IDirectSoundCaptureBuffer::Start
- •IDirectSoundCaptureBuffer::Stop
- •IDirectSoundCaptureBuffer::Unlock
- •IDirectSoundNotify
- •IDirectSoundNotify::SetNotificationPositions
- •IKsPropertySet
- •IKsPropertySet::Get
- •IKsPropertySet::QuerySupport
- •IKsPropertySet::Set
- •IUnknown
- •Реализация
- •Использование
- •IUnknown::AddRef
- •IUnknown::QueryInterface
- •IUnknown::Release
- •Классы cArchive
- •CArchive::Read
- •CArchive::Write
- •CBitmap
- •CBitmap::CreateCompatibleBitmap
- •CBitmap::GetBitmapBits
- •CBitmap::SetBitmapBits
- •CCmdUi::ContinueRouting
- •CCmdUi::Enable
- •CCmdUi::SetCheck
- •Cdc::Attach
- •Cdc::BitBlt
- •Cdc::CreateCompatibleDc
- •Cdc::Detach
- •Cdc::EndDoc
- •Cdc::EndPage
- •Cdc::FillRect
- •Cdc::GetDeviceCaps
- •Cdc::GetSafeHdc
- •Cdc::GetTextExtent
- •Cdc::IsPrinting
- •Cdc::LineTo
- •Cdc::Rectangle
- •Cdc::SelectClipRgn
- •Cdc::SelectObject
- •Cdc::SetMapMode
- •Cdc::SetTextAlign
- •Cdc::SetViewportOrg
- •Cdc::StartDoc
- •Cdc::StartPage
- •CDialog
- •CDialog::OnCancel
- •CDialog::DoModal
- •CDialog::EndDialog
- •CDialog::OnInitDialog
- •CDialog::OnOk
- •CDocument
- •CDocument::GetFile
- •CDocument::GetPathName
- •CDocument::OnNewDocument
- •CDocument::ReleaseFile
- •CDocument::SetModifiedFlag
- •CDocument::UpdateAllViews
- •CFile::cFile
- •CFile::Close
- •CFile::GetFilePath
- •CFile::GetLength
- •CFile::Open
- •CFile::Read
- •CFile::Remove
- •CFile::Seek
- •CFile::SeekToBegin
- •CFile::SetLength
- •CFile::Write
- •CFrameWnd
- •CFrameWnd::Create
- •CFrameWnd::DockControlBar
- •CFrameWnd::EnableDocking
- •CFrameWnd::LoadBarState
- •CFrameWnd::LoadFrame
- •CFrameWnd::OnCreateClient
- •CFrameWnd::SaveBarState
- •CFrameWnd::SetActiveView
- •CFrameWnd::ShowControlBar
- •CObArray
- •CObArray::Add
- •CObArray::GetSize
- •CObArray::operator [ ]
- •CObArray::RemoveAll
- •CObArray::SetSize
- •CPropertyPage
- •CPropertyPage::OnSetActive
- •CPropertyPage::OnWizardBack
- •CPropertyPage::OnWizardFinish
- •CPropertyPage::OnWizardNext
- •CPropertySheet
- •CPropertySheet::AddPage
- •CPropertySheet::Construct
- •CPropertySheet::cPropertySheet
- •CPropertySheet::DoModal
- •CPropertySheet::GetPageIndex
- •CPropertySheet::SetActivePage
- •CPropertySheet::SetFinishText
- •CPropertySheet::SetTitle
- •CPropertySheet::SetWizardButtons
- •CPropertySheet::SetWizardMode
- •CRect::NormalizeRect
- •CRect::OffsetRect
- •CRect::PtInRect
- •CRect::SetRect
- •CRgn::CreateRectRgnIndirect
- •CSliderCtrl
- •CSliderCtrl::GetPos
- •CSliderCtrl::SetLineSize
- •CSliderCtrl::SetPageSize
- •CSliderCtrl::SetPos
- •CSliderCtrl::SetRange
- •CSliderCtrl::SetTicFreq
- •CSplitterWnd
- •CSplitterWnd::CreateStatic
- •CSplitterWnd::CreateView
- •CSplitterWnd::GetPane
- •CStatusBar
- •CStatusBar::CommandToIndex
- •CStatusBar::Create
- •CStatusBar::SetIndicators
- •CStatusBar::SetPaneInfo
- •CStatusBar::SetPaneText
- •CString
- •CString::Empty
- •CString::Format
- •CString::GetBuffer
- •CString::IsEmpty
- •CString::LoadString
- •CString::MakeReverse
- •CString::ReleaseBuffer
- •CView::DoPreparePrinting
- •CView::GetDocument
- •CView::OnBeginPrinting
- •CView::OnDraw
- •CView::OnInitialUpdate
- •CView::OnPrepareDc
- •CView::OnPreparePrinting
- •CView::OnPrint
- •CView::OnUpdate
- •CWinApp
- •CWinApp::AddDocTemplate
- •CWinApp::Enable3dControls
- •CWinApp::GetProfileInt
- •CWinApp::GetProfileString
- •CWinApp::InitInstance
- •CWinApp::LoadIcon
- •CWinApp::LoadStandardCursor
- •CWinApp::OpenDocumentFile
- •CWinApp::SetRegistryKey
- •CWinApp::WriteProfileInt
- •CWinApp::WriteProfileString
- •CWnd::DoDataExchange
- •CWnd::EnableWindow
- •CWnd::GetClientRect
- •CWnd::GetDlgItem
- •CWnd::GetParent
- •CWnd::GetParentFrame
- •CWnd::GetParentOwner
- •CWnd::GetSafeHwnd
- •CWnd::Invalidate
- •CWnd::IsDlgButtonChecked
- •CWnd::OnHScroll
- •CWnd::OnKillFocus
- •CWnd::OnSetFocus
- •CWnd::SetScrollInfo
- •CWnd::SetScrollPos
- •CWnd::ShowScrollBar
- •CWnd::UpdateData
- •Команды mci break
- •Capability
- •Sysinfo
- •Макросы mci_hms_hour
- •Mci_hms_minute
- •Mci_hms_second
- •Mci_make_hms
- •Mci_make_msf
- •Mci_make_tmsf
- •Mci_msf_frame
- •Mci_msf_minute
- •Mci_msf_second
- •Mci_tmsf_frame
- •Mci_tmsf_minute
- •Mci_tmsf_second
- •Mci_tmsf_track
- •MciWndCanConfig
- •MciWndCanEject
- •MciWndCanPlay
- •MciWndCanRecord
- •MciWndCanSave
- •MciWndCanWindow
- •MciWndChangeStyles
- •MciWndClose
- •MciWndDestroy
- •MciWndEnd
- •MciWndGetActiveTimer
- •MciWndGetAlias
- •MciWndGetDevice
- •MciWndGetDeviceId
- •MciWndGetEnd
- •MciWndGetError
- •MciWndGetFileName
- •MciWndGetInactiveTimer
- •MciWndGetLength
- •MciWndGetPosition
- •MciWndGetPositionString
- •MciWndGetRepeat
- •MciWndGetSpeed
- •MciWndGetStart
- •MciWndGetStyles
- •MciWndGetTimeFormat
- •MciWndGetVolume
- •MciWndHome
- •MciWndNew
- •MciWndOpen
- •MciWndOpenDialog
- •MciWndOpenInterface
- •MciWndPause
- •MciWndPlay
- •MciWndPlayFrom
- •MciWndPlayFromTo
- •MciWndPlayReverse
- •MciWndPlayTo
- •MciWndRecord
- •MciWndResume
- •MciWndReturnString
- •MciWndSave
- •MciWndSaveDialog
- •MciWndSeek
- •MciWndSendString
- •MciWndSetActiveTimer
- •MciWndSetInactiveTimer
- •MciWndSetOwner
- •MciWndSetRepeat
- •MciWndSetSpeed
- •MciWndSetTimeFormat
- •MciWndSetTimers
- •MciWndSetVolume
- •MciWndStep
- •MciWndStop
- •MciWndUseFrames
- •MciWndUseTime
- •MmioFourcc
- •Массивы patcharray
- •Keyarray
- •Сообщения mci_break
- •Mci_close
- •Mci_getdevcaps
- •Mci_index
- •Mci_open
- •Mci_pause
- •Mci_play
- •Mci_record
- •Mci_reserve
- •Mci_resume
- •Mci_save
- •Mci_seek
- •Mci_setaudio
- •Mci_status
- •Mci_stop
- •Mciwndm_can_config
- •Mciwndm_can_eject.
- •Mciwndm_can_play
- •Mciwndm_can_record
- •Mciwndm_can_save
- •Mciwndm_can_window
- •Mciwndm_changestyles
- •Mciwndm_getactivetimer
- •Mciwndm_getalias
- •Mciwndm_getdevice
- •Mciwndm_getdeviceid
- •Mciwndm_getend
- •Mciwndm_geterror
- •Mciwndm_getfilename
- •Mciwndm_getinactivetimer
- •Mciwndm_getlength
- •Mciwndm_getposition
- •Mciwndm_getrepeat
- •Mciwndm_getspeed
- •Mciwndm_getstart
- •Mciwndm_getstyles
- •Mciwndm_gettimeformat
- •Mciwndm_getvolume
- •Mciwndm_new
- •Mciwndm_notifyerror
- •Mciwndm_notifymedia
- •Mciwndm_notifymode
- •Mciwndm_notifypos
- •Mciwndm_open
- •Mciwndm_openinterface
- •Mciwndm_playfrom
- •Mciwndm_playreverse
- •Mciwndm_playto
- •Mciwndm_returnstring
- •Mciwndm_sendstring
- •Mciwndm_setactivetimer
- •Mciwndm_setinactivetimer
- •Mciwndm_setowner
- •Mciwndm_setrepeat
- •Mciwndm_setspeed
- •Mciwndm_settimeformat
- •Mciwndm_settimers
- •Mciwndm_setvolume
- •Mm_acm_formatchoose
- •Mm_mcinotify
- •Mm_mcisignal
- •Mm_wim_close
- •Mm_wim_data
- •Mm_wim_open
- •Mm_wom_close
- •Mm_wom_done
- •Mm_wom_open
- •Mmiom_close
- •Mmiom_open
- •Mmiom_read
- •Mmiom_rename
- •Mmiom_seek
- •Mmiom_write
- •Mmiom_writeflush
- •Wm_close
- •Wm_timer
- •Структуры acmdriverdetails
- •Acmfilterchoose
- •Acmformatchoose
- •Acmfilterdetails
- •Acmfiltertagdetails
- •Acmformatdetails
- •Acmformattagdetails
- •Acmstreamheader
- •Auxcaps
- •Bitmapinfo
- •Bitmapinfoheader
- •Createstruct
- •Dsbcaps
- •Dsbpositionnotify
- •Dsbufferdesc
- •Dscbcaps
- •Dscbufferdesc
- •Dsccaps
- •Logfont
- •Mci_break_parms
- •Mci_dgv_cue_parms
- •Mci_dgv_open_parms
- •Mci_dgv_pause_parms
- •Mci_dgv_play_parms
- •Mci_dgv_record_parms
- •Mci_dgv_reserve_parms
- •Mci_dgv_save_parms
- •Mci_dgv_set_parms
- •Mci_dgv_status_parms
- •Mci_generic_parms
- •Mci_getdevcaps_parms
- •Mci_open_parms
- •Mci_ovly_open_parms
- •Mci_ovly_save_parms
- •Mci_play_parms
- •Mci_record_parms
- •Mci_save_parms
- •Mci_seek_parms
- •Mci_seq_set_parms
- •Mci_set_parms
- •Mci_status_parms
- •Mci_vcr_cue_parms
- •Mci_vcr_play_parms
- •Mci_vcr_record_parms
- •Mci_vcr_seek_parms
- •Mci_vcr_set_parms
- •Mci_vcr_status_parms
- •Mci_vd_play_parms
- •Mci_wave_open_parms
- •Mci_wave_set_parms
- •Mmckinfo
- •Mmioinfo
- •Openfilename
- •Rgbquad
- •Scrollinfo
- •Security_attributes
- •Timecaps
- •Wavefilter
- •Waveformatex
- •Wavehdr
- •Waveincaps
- •Waveoutcaps
IDirectSoundBuffer::Play
HRESULT Play( DWORD dwReserved1, DWORD dwReserved2, DWORD dwFlags );
Возвращаемое значение
В случае успешного завершения возвращает значение DS_OK. В противном случае возвращаемое значение может принимать одно из следующих значений:
DSERR_BUFFERLOST — память, выделенная под буфер, освобождена и должна быть выделена заново.
DSERR_INVALIDCALL — вызов данной функции недопустим при текущем состоянии объекта.
DSERR_INVALIDPARAM — один или несколько аргументов метода имеют недопустимые значения.
DSERR_PRIOLEVELNEEDED — вызывающее приложение имеет недостаточно высокий уровень приоритета для вызова данной функции.
Аргументы
dwReserved1 — аргумент зарезервирован для дальнейшего использования. Данный аргумент должен иметь нулевое значение.
dwReserved2 — аргумент зарезервирован для дальнейшего использования. Данный аргумент должен иметь нулевое значение.
dwFlags — флаги, определяющие режим воспроизведения буфера. Определены следующие флаги:
DSBPLAY_LOOPING — режим циклического прослушивания. В этом режиме при достижении курсором воспроизведения конца данного буфера он немедленно перемещается в его начало и воспроизведение данных из буфера продолжается. Проигрывание содержимого буфера продолжается до тех пор, пока не будет остановлено приложением. Этот флаг должен быть установлен при воспроизведении содержимого первичного аудио буфера.
Примечание
Метод IDirectSoundBuffer::Play начинает воспроизведение содержимого аудио буфера с текущей позиции.
Вызов данного метода начинает передаче содержимого вторичного аудио буфера на микширование в первичный аудио буфер, содержимое которого немедленно воспроизводится. Если это первый буфер, вызываемый на прослушивание, он сам создаёт первичный аудио буфер и начинает его воспроизведение, что освобождает приложение от необходимости создавать и управлять первичным аудио буфером.
Если буфер, определённый в данном методе уже воспроизводится, метод не возвратит сообщения об ошибке, а воспроизведение содержимого данного буфера продолжится. Однако при дальнейшем воспроизведении будут действовать флаги, установленные в последнем вызове данного метода.
При воспроизведении первичного аудио буфера необходимо установить флаг DSBPLAY_LOOPIN. Вызов метода IDirectSoundBuffer::Play начинает воспроизведение первичного аудио буфера через аудио устройство. Если для приложения установлен уровень приоритета DSSCL_WRITEPRIMARY, то на воспроизведение будет передаваться текущее содержимое первичного аудио буфера. Если же установлен другой уровень приоритета, то в первичном аудио буфере будет производится микширование вторичных аудио буферов. Если при низших уровнях приоритета не задан ни один вторичный аудио буфер, то в первичном аудио буфер будут смешиваться нулевые значения, что соответствует тишине. Это снижает загрузку процессора при последовательном воспроизведении вторичных аудио буферов, поскольку в этом случае нет необходимости уничтожать и создавать первичный аудио буфер для каждого нового вторичного аудио буфера, а также инициализировать воспроизведение хранящейся в нём информации.
Перед вызовом данного метода для любого аудио буфера приложение должно вызвать метод IDirectSound::SetCooperativeLevel и установить в нём уровень приоритета. Обычно устанавливается уровень приоритета DSSCL_NORMAL. Если перед вызовом метода IDirectSoundBuffer::Play не был вызван метод IDirectSound::SetCooperativeLevel, то метод IDirectSoundBuffer::Play возвращает значение DS_OK, но аудио устройство не начинает воспроизведения пока не будет вызван метод IDirectSound::SetCooperativeLevel.