Видеоклип в Excel

На сайте excel.acdc.com представлен клип группы AC/DC в очень необычном формате. По ссылке можно скачать Excel-файл, который может проигрывать «видео».

Интересно узнать, как реализован такой фокус. Если посмотреть на техническую сторону этой занимательной безделушки, то можно увидеть следующий код макроса (код даже не закрыт паролем) на VBA, проигрывающий псевдо-видео:

Sub PlayVideo()

Dim i As Long
Dim Start, Delay

i = 100
Do While Sheet1.Cells(i, 17).Value <> ""

   Start = Timer                'Set start to internal timer
   Delay = Start + 0.083        'Set delay so frames change 12 per sec.

   'Display
   Do While Timer < Delay
      DoEvents
   Loop
   Sheet1.Range("B2").Value = Sheet1.Cells(i, 17).Value
   DoEvents

   If StopPlaying = True Then
      Exit Do
   End If

   Start = Timer                'and reset the timer
   Delay = Start + 0.083        'and the delay
   i = i + 1
Loop

'Stop audio
Call PlayBackStop
'Clear video
Sheet1.Range("B2").Value = ""
'Show logo
Sheet1.Range("B2").Value = Sheet1.Range("Q99").Value
'Move cursor
'Sheet1.Range("A1").Select

End Sub
&#91;/sourcecode&#93;
</p>
<p>Каждые 0.083 секунды, то есть примерно с частотой 12 кадров в секунду происходит заполнение ячеек новыми данными.</p>
<p> Проигрывание звука осуществляется через импортированную функцию библиотеке winmm.dll :</p> 
Private Declare Function sndPlaySound Lib "winmm.dll" Alias "sndPlaySoundA" _
        (ByVal lpszSoundName As String, ByVal uFlags As Long) As Long

Предварительно звук извлекается из xls-файла в файл ACDC.wav c помощью простого поиска заголовка внутри бинарного xls-файла. Файл ACDC.wav был предварительно внедрен в Excel-документ.

Комментарии:

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *