Пещера отшельного фердопердозника

2009-11-29

Asterisk records flash player — WavPlayer 1.6.1

Рубрика: voip, web programming — Метки: , , , , , , , , , , — datacompboy @ 17:12:42 | 2,080 views

Продолжаем эпопею с прямым проигрыванием записанных asterisk’ом файлов. Новый релиз WavPlayer: 1.6.1.
Скачать полно дерево исходников WavPlayer-src-1.6.1.7z(463Kb) либо просто пример интеграции: WavPlayer-sample-1.6.1.tar.bz2(30Kb).

Update: WavPlayer 1.7.1

В новой версии:

  • Добавлен выбор интерфейса: однокнопочный (gui=lite) или с полосой позиционирования по файлу (gui=full).
  • Добавлена возможность ставить проигрывание на паузу и возобновлять проигрывание
  • Добавлена возможность позиционирования по загруженной части файла. В пределах 5 секунд от текущего положения переход сразу, дальше идёт заново перересемплинг, поэтому позиционируется на нужное количество времени раньше, заполняя тишиной.
  • В события play/stop/pause/buffering добавлена информация о положении по файлу, для точной привязки JS интерфейса
  • Исправлена внутренняя структура проигрывателя, теперь читалки файлов выглядят так:
           IFile < - File
                   / | \
             FileAu  |  FileWav
                  FileRaw
                  /  ||  \
           FileAlaw /  \  FileSln
              FileGsm  FileUlaw

    вся логика работы вынесена в общий File, читатели FileAu и FileWav определяют только чтение заголовков, а FileRaw вообще определяет только метод проверки готов ли файл к считыванию, его наследники определяют все параметры статически в конструкторе.

  • Все операции, производимые декодером ограничены по количеству обрабатываемых данных, держится декодированным только кеш +-5 секунд от текущего проигрываемого положения, за один присест из входящего потока копируется не более 64К данных, данные копируются по таймеру а не по приходу (это исправляет проблему работы в IE)
  • Приложил пример интеграции проигрывателя в страницу просмотра: смотреть.
    Система интеграции:

    • В некую папку (у меня это ec/res/) складываются domready.js swfobject.js expressInstall.swf wavplayer.swf и wavplayer.js.
    • На странице должен быть некий якорный элемент (у меня это заголовок h3), после (внутрь, до, итп) которого будет встроен проигрыватель
    • И на странице должны быть ссылки на файлы с записями
    • Настраиваем wavplayer.js в самом конце:
      • window.WavPlayer = new WavPlayer('WavPlayerBlock', "Play");

        — меняем «Play» на любую строку, на которую будут заменяться ссылки после загрузки проигрывателя

      • var hs = document.getElementsByTagName('h3');
        if (hs.length == 1) {
            hs = hs[0];
            attachPoint = hs.parentElement ? hs.parentElement : hs.parentNode;
            attachAnchor = hs.nextSibling;
        }
        attachPoint.insertBefore(Player, attachAnchor);

        Определяет точку подключения флешпроигрывателя. В моем случае — проигрыватель встраивается после единственного h3 на странице. Для вашего случая, написать как потребуется.

      • var vars = {}; var params = {'scale': 'noscale', 'bgcolor': '#FFFFFF'};
        swfobject.embedSWF("ec/res/wavplayer.swf?gui=full&w=600&h=20", "WavPlayerBlock", "600", "20", "10.0.32.18", "/ec/res/expressInstall.swf", vars, params, params);

        — задать пусть до проигрывателя и инсталлятора, настроить ширину и высоту проигрывателя (в двух местах — w=…&h=… и два аргумента после WavPlayerBlock). Задать тип интерфейса (gui=full или gui=lite). Задать цвет фона проигрывателя, чтобы «сливался с окружением». Если требуется, чтобы флеш-интерфейс был невидимым, задайте w=40&h=40, но размеры (после WavPlayerBlock) — «0″, «0″.

    • Вписываем в страницу со списком записей вызов нужных скриптов:
      <script src="ec/res/domready.js"></script><script src="ec/res/swfobject.js"></script><script src="ec/res/wavplayer.js"></script>
  • Любые вопросы приветствуются :)

Комментарии (12) »

  1. [...] отсюда: wavplayer-1.2.tar Теперь, и с README.txt внутри :) Свежак: WavPlayer-1.6.1 с примером интеграции, возможностью позиционирования [...]

    Уведомление от WavPlayer — flash player for asterisk sounds « Пещера отшельного фердопердозника — 2009-11-29 @ 18:22:49

  2. супер. зачетно.
    прикрутил ващ плеер к asterisk cdr (его использую для отображения cdr из freeswitch).
    посмотреть можно тут: http://github.com/butch/asterisk-cdr-plus
    суть в том, что файлы записей разгвооров обзываются по типу $uuid, и в таблице звонков, если файл доступен для чтения, отображается ссылка на файл с записью.
    а ваш замечательный плеер привносит вообще офигительный эффект воспроизведения прямо в браузере!!
    биг сэнкс!!!
    скриншотег: http://cloud.github.com/downloads/butch/asterisk-cdr-plus/asterisk-cdr-plus2.png

    Комментарий от fr.butch — 2009-12-22 @ 17:08:59

  3. Ну, в общем-то, совершенно необязательно было добавлять H3 — можно было в скрипте привязаться не к «после H3″ а «перед таблицей», это у меня было удобно после h3 втыкать :)

    А так — очень рад, что кому-то он понадобился кроме меня :)

    Комментарий от datacompboy — 2009-12-22 @ 17:22:40

  4. > совершенно необязательно было добавлять H3
    согласен
    но я маловато понимаю в вебе, отсюда и движение по наименьшему сопротивлению =)
    еще раз большое спасибо за плеер ;)

    Комментарий от fr.butch — 2009-12-22 @ 17:39:13

  5. А можно поинтересоваться будет ли этот плеер проигрывать файлы, wav файлы подобного типа: http://www.voiceage.com/acelpnet.php ? Ибо я уже совсем не знаю что с ними делать, mencoder аудио больше не конвертирует, а в ffmpeg этот кодек не поддерживает.

    Комментарий от trototo — 2010-01-08 @ 07:32:20

  6. Только если есть алгоритм его декодирования :) Приписать, теоритически, можно.

    Комментарий от datacompboy — 2010-01-08 @ 22:42:56

  7. Hi!!

    tnx a lot for this player!!!!!!! :))))

    a question:

    can i modify the interface of the player?. I downloaded the source but can not find any .fla

    Комментарий от Paolo — 2010-01-18 @ 18:48:11

  8. Yes, you can modify interface, but it written in haxe, not in flash itself.
    You can create new interface, and link player swf into, just make your interface and use events from player.

    Комментарий от datacompboy — 2010-01-18 @ 21:05:55

  9. Спасибо огромное!!! Очень пригодилось!!! Респект!!!

    Комментарий от Inta — 2010-03-17 @ 14:22:59

  10. Спасибо огромное.

    Комментарий от Xlock — 2010-04-06 @ 18:05:04

  11. Hi Friends i need to change please Graphics, can any one helping

    Комментарий от Dinesh — 2010-04-26 @ 13:32:26

  12. i got suggestion to use hexa to compile and Flash developer to compile the application i am unable to do it. please can any one help me.

    Комментарий от Dinesh — 2010-04-26 @ 13:33:52

RSS-лента комментариев к этой записи. URL обратной ссылки

Оставить комментарий

Сайт работает на WordPress