Играйте FLV от ByteArray в Flash player

Игнорирование, является ли этот тест хорошей вещью или нет....

Очень грязный взлом должен проверить ту Транзакцию. Текущий не является пустым.

Это не 100%-й тест, так как кто-то мог использовать что-то другое, чем TransactionScope для достижения этого, но он должен принять меры против очевидного, 'не потрудился иметь транзакцию' части.

Другая опция состоит в том, чтобы сознательно попытаться создать новый TransactionScope с несовместимым уровнем изоляции к тому, что/должно использоваться и TransactionScopeOption.Required. Если это успешно выполняется вместо того, чтобы бросить ArgumentException не было транзакции. Это требует, чтобы Вы знали, что конкретный IsolationLevel не использован (что-то как Chaos - потенциальный выбор)

, Ни одна из этих двух опций не особенно приятна, последний очень хрупок и подвергается семантике TransactionScope, остающегося постоянным. Я протестировал бы первого, а не последнего, так как это несколько более устойчиво (и ясно читать/отлаживать).

6
задан Amarghosh 12 October 2009 в 11:36
поделиться

3 ответа

Я думаю, "почему ByteArray" - это на самом деле ВОПРОС ... как он туда попал? :)

есть множество подходов ... один был дан Конрадом ... но, как он сказал, он будет медленным ... на самом деле, я думаю, что это будет намного медленнее, чем вы даже можете себе представить ... так вот еще один:

передать ByteArray на сервер и загрузить оттуда flv ... есть несколько вариантов:

  • удаленный сервер: загрузить его на удаленный сервер (вероятно, тот, который распространяет ваш swf) .. .. все еще оставляя вопрос, почему вы вообще не распространяете flv оттуда ...
  • локальный сервер:
    1. установлено: просто установите крошечное локальное приложение, которое сделает это за вас, то есть вы можете отправить туда массив байтов, а затем получить его через подходящий протокол (HTTP, RTMP) ...
    2. встроенный в браузер: то же самое, что и установленный, но вы можете просто создать Java-апплет для выполнения этой работы ... подписанным Java-апплетам разрешено связывать порты (да, это дополнительный щелчок для пользователя, но это так же удобно, как он может получить), что вам и нужно сделать, а остальное действительно такое же, как и с установленным сервером ...

в обоих сценариях вы можете столкнуться с проблемами междоменной политики (вероятно, только при отправке, поскольку я думаю, вам разрешено загружать видео в разных доменах), где вам нужно правильно отвечать на запросы файла политики FlashPlayer (вы можете найти массу материала по этому поводу) ...вы можете обойти ограничение на отправку, создав мост LocalConnection, как этот для C # ...

удачи…;)


edit: ах, хорошо, теперь я понимаю ... на самом деле, уже был очень похожий вопрос ... я помню короткое интервью с одним парнем из Adobe, сразу после анонса функции p2p ... Adobe очень стесняется этого ... на самом деле мне потребовались недели, чтобы найти p2p после того, как был официально выпущен flash player 10 (на самом деле у меня не было времени беспокоиться раньше) ...

на самом деле, я думаю, это сделано специально ... в интервью, это стало ясно, что Adobe не пытается оттолкнуть сайты потокового видео ... два наиболее важных, вероятно, это youtube и google video ... youtube - одна из основных причин, по которым flash player стал настолько популярным. .. и это'принадлежит google, как google video ... возможность простого создания медиаплатформы p2p сильно разозлит Google ... для этого не нужно много серверов ... "просто" хорошее программное обеспечение, но это доступный ... и я думаю, что Adobe не хочет злить Google ... по некоторым причинам:

  • они - САМАЯ поисковая система
  • им нужен Google, чтобы разрешить индексацию сайтов на основе flash
  • Google в n раз больше
  • Google действительно пытается получить большую часть рынка RIA ... у них есть GWT , хром, V8 , собственный клиент ...

так что я полагаю, что Adobe не особо заинтересован в этом ... это в значительной степени немного, как, например, когда Google объявил о своей платежной системе (это был GPay или около того?), Что было прямым одновременно с PayPal ... eBay - это один из Google 'самые важные источники дохода ... и на самом деле я больше ничего об этом не слышал ...

многие решения являются политическими, когда дело доходит до крупных компаний ... и я думаю, что одно не делать и p2p flash-плеера strong - один из них ...


-4
ответ дан 18 December 2019 в 04:54
поделиться

Я не уверен, что это вообще возможно, поскольку я понятия не имею, как Flash кодирует встроенные видео SWF, но, возможно, вы могли бы преобразовать этот массив байтов flv в swf с flv, встроенным во временную шкалу и используйте этот массив байтов, чтобы отобразить его с помощью Loader.loadBytes ...

-1
ответ дан 18 December 2019 в 04:54
поделиться

Я не буду спрашивать, почему именно ByteArray? Ответ на ваш вопрос - ДА, но конечный результат будет работать медленнее - медленнее, когда видео больше и кодек сложен. Вы должны прочитать кадры и поместить их как BitmapData в Bitmap и написать собственный проигрыватель. Лучше всего использовать Алхимию - тогда она работает быстрее, но также и медленнее :) Вы также можете использовать Haxe.

Звук очень похожим образом. Лучше всего начать с Adobe Labs.

Звучит очень похоже. Лучше всего начать с Adobe Labs.

Звучит очень похоже. Лучше всего начать с Adobe Labs. В конце - помните, что flv декодируется аппаратно - ваш код будет использовать только процессор. Теперь спросите себя, действительно ли вам нужна эта функция?

-2
ответ дан 18 December 2019 в 04:54
поделиться
Другие вопросы по тегам:

Похожие вопросы: