Direct Sound

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
Kiryusha
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 216
Зарегистрирован: 30.08.2005 (Вт) 10:56
Откуда: УР, Ижевск

Direct Sound

Сообщение Kiryusha » 16.12.2006 (Сб) 15:54

hi, all!
Нужна помощь!
Вобщем дело в следующем, на серверной программе я получаю аудио буфер из созданного файла, затем получаю инфу по этому буферу и данные из него. Далее в клиентской части программы я создаю буфффер с теми же параметрами, перекидываю все данные из серверного буфера по винсоку. Записываю их в клиентский буфер и проигрываю его.
Проигрывается ОЧЕНЬ мягко говоря совсем не то.
Данные я сверял они доходят абсолютно правильными, поэтому из-за чего такое дело я не знаю...
У кого какие идеи?
Судебно-медицинское вскрытие показало, что чукча умер в
результате судебно-медицинского вскрытия.

Денис
Доктор VB наук
Доктор VB наук
Аватара пользователя
 
Сообщения: 2734
Зарегистрирован: 07.11.2006 (Вт) 13:55
Откуда: Ейск, Краснодарский край

Сообщение Денис » 17.12.2006 (Вс) 2:14

А если клиент и сервер запущены на одной машине?
Если данные проигрываются, то проблема в винсокете...
Программирование — богоизбранная дисциплина! Если бог и есть, то вселенную он скомпилировал, не иначе.

Kiryusha
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 216
Зарегистрирован: 30.08.2005 (Вт) 10:56
Откуда: УР, Ижевск

Сообщение Kiryusha » 17.12.2006 (Вс) 12:53

Я итак тесты проводил только на своем компе;
И с винсоком все в порядке я же сказал данные доходят правильно, я проверял.
Судебно-медицинское вскрытие показало, что чукча умер в
результате судебно-медицинского вскрытия.

DirectXManiac
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1543
Зарегистрирован: 03.11.2005 (Чт) 13:32
Откуда: из DirectX SDK

Сообщение DirectXManiac » 17.12.2006 (Вс) 13:02

Kiryusha
Знчит проблема в проигрывании... Покажи код, как ты проигрываешь, как передаёшь, как получаешь
#define ROFL 0xDDDD

Kiryusha
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 216
Зарегистрирован: 30.08.2005 (Вт) 10:56
Откуда: УР, Ижевск

Сообщение Kiryusha » 17.12.2006 (Вс) 20:30

Это процедура обновления буфера
Код: Выделить всё
    Private Function RefreshBuffer() As Boolean
        On Error GoTo ERRLABEL
       
        If BufSize <= MaxBufSize Then
            dsBuf.WriteBuffer 0, BufSize, Buffer, DxVBLibA.CONST_DSBLOCKFLAGS.DSBLOCK_DEFAULT
            RefreshBuffer = True
            BufSize = 0
            Buffer = ""
        Else
            dsBuf.WriteBuffer 0, MaxBufSize, Buffer, DxVBLibA.CONST_DSBLOCKFLAGS.DSBLOCK_DEFAULT
            RefreshBuffer = True
            BufSize = BufSize - MaxBufSize
            Buffer = Mid(Buffer, MaxBufSize + 1)
        End If
        Exit Function


А это для вызова предыдущей, и старта воспроизведения.
Эвент стоит на конец воспроизведения
Код: Выделить всё
   
Private Sub DirectXEvent8_DXCallBack(ByVal eventid As Long)
        Dim pi As RADIO_PROTOCOL_T
   
        If RefreshBuffer Then
            dsBuf.Play DSBPLAY_DEFAULT
        End If
        'RefreshBuffer
        With pi
            .lCommand = 1
            .lSize = 0
            .dwFlags = 0
            .Data = ""
        End With
        wskClient.SendData Create_Package(pi)
    End Sub
Судебно-медицинское вскрытие показало, что чукча умер в
результате судебно-медицинского вскрытия.


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 98

    TopList