+ Ответить в теме
Показано с 1 по 3 из 3

Тема: Как узнать позицию при записи wav через mciSendString?

  1. #1
    romserg is on a distinguished road
    Регистрация
    29.03.2015
    Возраст
    28
    Сообщений
    2
    Вес репутации
    0

    Question Как узнать позицию при записи wav через mciSendString?

    Использую код Delphi:

    Код pascal:
    1. var s:array [0..255] of char;
    2. begin
    3.  fn := '12.wav';
    4.  
    5.  mciSendString(PChar('open new type waveaudio alias AGD'), nil, 0, 0);
    6.  
    7.  mciSendString('set AGD time format milliseconds format tag pcm ' +
    8.                     'bitspersample 16 channels 1 samplespersec 44100 ' +
    9.                     'alignment 2 bytespersec 88200' , nil, 0, 0);
    10.  
    11.  mciSendString(PChar('record AGD to 5222'), nil, 0, 0);
    12.  
    13.  repeat
    14.   mciSendString('status AGD position', @s, sizeof(s), 0);
    15.   OnEvt(s);
    16.   mciSendString('status AGD mode', @s, sizeof(s), 0);
    17.   sleep(20);
    18.  until s = 'stopped';
    19.  
    20.  mciSendString(PChar('save AGD "' + fn + '"'), nil, 0, 0);
    21.  mciSendString('close AGD', nil, 0, 0);
    22. end;

    Но выдаёт в ф-цию OnEvt секунды*1000 (т.е. 1000, 2000, 3000...) вместо миллисекунд, только в конце, после 5000, выдаёт 5222. При этом аналогичный код для воспроизведения нормально выдаёт миллисекунды! Как же узнать миллисекунды при записи и почему так происходит?
    Последний раз редактировалось Romeo; 31.03.2015 в 17:11. Причина: [code=pascal][/code]

  2. По умолчанию

     
    Хотите избавиться от рекламы? Зарегистрируйтесь
  3. #2
    system architect somewhere will become famous soon enough somewhere will become famous soon enough Аватар для somewhere
    Регистрация
    31.08.2006
    Адрес
    71 RUS
    Возраст
    35
    Сообщений
    1,837
    Вес репутации
    16

    По умолчанию Re: Как узнать позицию при записи wav через mciSendString?

    Возможно причина в размере встроенного буфера записи, равного 1 секунде
    Попробуйте получать размер в других единицах: set AGD time format samples, например
    It's a long way to the top if you wanna rock'n'roll

  4. #3
    romserg is on a distinguished road
    Регистрация
    29.03.2015
    Возраст
    28
    Сообщений
    2
    Вес репутации
    0

    По умолчанию Re: Как узнать позицию при записи wav через mciSendString?

    Пробовал и samples, и bytes, но выдаёт значения, кратные 1 секунде (например, по 44100 в samples).

+ Ответить в теме

Похожие темы

  1. записи с вариантами и вложенные записи, нужна помощь.
    Всем привет, нужна помощь по записям с вариантами и вложенными записями. Во вложении есть схема, помогите пожалуйста описать это в паскале, заранее...
    от renx в разделе Delphi и Pascal
  2. как узнать номер материнки через PHP?
    стоит задача в одной фирме подвязать программу к определенной машине по IP или процессору это делать нельзя, т.к. их достаточно часто меняют. (!)...
    от dj--alex в разделе Perl, PHP, ASP ...
  3. как обратится произвольной записи в Outlook или к произвольному свойству этой записи.
    Как в outlook обратится к произвольной записи например прочитать адрес отправителя в произвольном письме или фамилию в произвольном контакте без...
    от namomelkor в разделе MS Office и VB(A).
  4. Гиперссылка на определенную позицию
    Ситуация следующая: Есть документ xls, в котором ссылки на документы doc... Проблема: Как сделать чтобы при нажатии ссылки в xls открывался документ...
    от Dumka в разделе MS Office и VB(A).
  5. как определить позицию курсора?
    Использую такой код: <iframe name='iframe'></iframe> <script language='javascript' id='MainScript'> var Editor...
    от a__sergey в разделе JScript, VBScript, DHTML...

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения