14 часов назадХотелось бы узнать, Как вы относитесь к пиву? Если положительно, то какое предпочитаете? Если отрицательно, то почему? Просто интересно...
2 дня назадпрям таки тебе и скажут здесь посмотри
3 дня назадНапишите мне на имейл (sbnur@front.ru) - очистка памяти в флеш-плеере нетривиальная проблема и все зависит от конкретного кода - чтобы не превращать, как уже отмечалось, в форум, лучше обсудить все приватно
3 дня назад1) Спасибо всем кто ответил.
2) Чтобы блог действительно не превращался в форум хотелось бы видет более обоснованные ответы, приводите пожалуйста доводы доказывающие вашу точку зрения.
3) Из комментов видно, что не все понимают зачем нужен именно мувик с вложенными в его кадры анимациями. Поясняю: этот мувик обычно собирается дизайнером, который не имеет особого представления о работе AS. Дизайнеру проще сделать мувик с лейблами чем написать специальный класс. Я же использую один класс для всех подобных мувиков в котором программно обрабатываю переход от одной анимации к другой. Таким образом для всех мувиков используется один класс.
4) Знаю что использование мувиков, созданных в IDE не является хорошей практикой, но в данном случае удобен именно этот подход. К тому же если метод мувика gotoAndStop реализован и описан в официальной документации он может использоваться и должен правильно работать.
5) Если встраивание видео в мувик несет в себе какие-то сложности, об этом должно быть указано в хэлпе.
6) Теоретически наверное можно найти какое-то другое решение проблемы, но речь изначально шла о том является ли такое поведение багом, и если так - этот баг должен быть добавлен в базу Adobe.
7) Очень хотелось бы ,чтобы кто-то проверил это у себя или указал как эту проблему можно решить.
3 дня назадgotoAndStop(label);
мама роди меня обратно ...
3 дня назадБлог превращаетсо в форум -- пичалько.
3 дня назадМожет попробовать аттачить и удалять мувиклипы при необходимости из библиотеки? Удалили предыдущий мувик со stage и добавили новый, который нужно проиграть.
примерно так:
var _class:Class = getDefinitionByName("nameClass") as Class;
var _mc:MovieClip = new MovieClip(new _class());
addChild(_mc);
...
removeChild(_mc);
3 дня назадСпасибо за ответ. Хочу пояснить что я пробовал чтобы люди могли лучше понять суть проблемы. Сорри, если много букв. Вот код функции для переключения кадров с видео: [collapse] <code> public function playAnim(label:String):void { // проверяем есть ли такая метка в списке доступных if (labels.indexOf(label) != -1) { // если метка отличается от текущей выполняем переход if (currentLabel != label) { // "anim" - это мувик с именем "anim" и объектом Video внутри, в нем также могут находится мувики с графикой if (anim) { // стопим его, при помощи ENTER_FRAME Event с WeakReference я проверял его текущий кадр и трейс показывает что он нормально стопится anim.stop(); // удаляем его из DisplayList removeChild(anim); // проходим по всем его вложенным DisplayObject-ам while (anim.numChildren) { var vid:Video = anim.getChildAt(0) as Video; // если находим видео, пытаемся принудительно вызвать GarbageCollector if (vid) { trace(">>> FORCE GC! <<<"); try { new LocalConnection().connect('foo'); new LocalConnection().connect('foo'); } catch (e:*) {} } // удаляем все найденные DisplayObject-ы anim.removeChildAt(0); } // обнуляем автоматически созданную переменную (сам флэш иногда это не делает) anim = null; } // переходим на новый кадр с мувиком "anim" внутри которого лежит другое видео gotoAndStop(label); } } } </code> [/collapse] Странно, что без вызова GarbageCollector-а все видео продолжают висеть в памяти. Если вызывать GarbageCollector как показано в коде, то некоторые видео удаляется (исчезают трейсы от них), а некоторые продолжают висеть в памяти остановленные на одном кадре, хотя ссылок на них в коде больше нет. Хэлп от Адоб утверждает (http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/media/Video.html) что потоковое видео можно остановить соответствующими вызовами: myVid.attachCamera(null); myVid.attachNetStream(null); Про то как остановить встроенное видео нет ни слова. Хотелось бы видет простой метод dispose() как у BitmapData что какжется логичным. Хочется делать простые вещи без всяких костылей и хакерства.
Изучая возможность по подавлению эхо самостоятельно, не дожидаясь Adobe, я практически осуществил задуманное, но вылез один неприятный момент, который даже не знаю к чему отнести (не уверен, что это глюк, может это фича ...) Суть проблемы заключается в следующем, событие SampleDataEvent вызывается на разных платформах по-разному, в win оно чаще всего выплевывает по 2048 байт, если микрофон в 8KHz, а под МакОсью выдает чаще всего по 1024 байта, хотя случаи проскакивания 2048 байт тоже замечены, но редко. Для моей задачи это существенно все усложняет, так как в идеале мне вообще нужны фреймы по 20мс или 320 байт, но я готов смириться с больним размером фрейма... а вот с тем, что на разных компьютера флэш себя ведет по-разному я смириться не готов J)
P.S. Используется FP 10.1 beta3 , может дело в бете, а может стоит накатать баг реквест в JIRA пока не поздно?

Комментарии
Это давно известная проблема синхронизации.
Флеш плеер заранее заготавливает звуковые данные - до того, как кончатся уже имеющиеся.
Насколько я знаю, в JIRA про это уже есть. Может быть и workaround какой-то имеется, хотя вряд ли.
А расскажи суть алгоритма, почему все так жестко:
20мс или 320 байт
подумаем вместе!
Это не жестко, просто на эти параметры заточен AEC из Speex. Но он и 512 сэмплов вполне кушает, просто давит похуже.
Вобще, звуковые карты тоже любят, когда им буфер заранее заполняют.
Если же этого не делать, а подкидывать новые данные только когда закончено проигрывание уже имеющихся, то получаются очень неприятные на слух щелчки или зацикливания того, что есть в буфере.
Пускай он заготавливает, кто против, просто пусть кол-во этих заготавливаемых данных будет величиной постоянной. А то вы себе представляете разницу между 256 сэмплами и 5000? При частоте в 8 КГц это почти секунда задержки.
Представляю. Я пытался сделать пианино с генерируемым звуком. Пришлось отказаться от этой идеи.
Добрый вечер. Есть следующая программа: онлайн гитарный тюнер. http://www.tictone.com/tuner.php. Он определяет частоту звука, поступающего на микрофон и пишет к какой ноте ближе всего данная частота. Частоты всех нот определяются математически по известным законам. Могли бы вы написать подобную программу на заказ для моего сайта?
При выводе звука, в доке адоб акцентирует внимание на латентность. Т.е. на опережение позиции заполняемого буфера и позиции текущего звучания на каналах. При этом они говорят, что это как платформо зависимо, так и железо зависимо (эксперименты показывают что действительно от железа очень зависит).
С микрофоном скорее всего таже байда, для того, чтобы выдержать риалтайм семплов они и меняют величину буфера, посему скорее всего Вам прийдется подстраиваться под неизвестный размер входного буфера, т.к. это не баг а фича
2 Dan: http://lab.andre-michelle.com/tonewheels практически готовый пример. Вам только нужно добавить клавиатуру и сделать реакцию на нажатие клавиш.
2 Алекс Борн: http://www.adobe.com/devnet/air/flex/articles/using_mic_api.html, не совсем то (определяется "на слух" сигналы телефонов). Может на этом примере сами возьметесь за задачу?
Спасибо за ссылку. Но дело в том, что я не программист. Я зашёл сюда с целью найти того, кто смог бы реализовать этот проект. Могли бы вы взяться за это?
К сожалению, по ряду причин - нет. Но на то и риппер, может кто откликнется!
Привет, я думаю, что здесь есть люди, которые могут вам помочь - предлагаю написать конкретное объявление и разместить на главной странице сайта.