Форум / Вопросы / axShockwaveFlash и uppod.swf
Здравствуйте!
Пишу собственный плеер на c# windows forms с использованием axShockwaveFlash и uppod.swf Для просмотра трансляций телеканалов использую следующий код:

string id = "uid=Fplayer&";//идентификатор uid
axShockwaveFlash1.FlashVars = id + "auto=play&file=" + urlTV + "&st=" + Resources.MyStyle;// urlTV — прямая ссылка на трансляцию
axShockwaveFlash1.Movie = "http://uppod.ru/samples/js/uppod.swf";

Трансляция идёт нормально, но вот доступ к JavaScript API получить не удаётся
В обработке нажатия клавиши пишу такой код:

string com = "<invoke name=\"sendToUppod\"returntype =\"xml\">"
+ "<arguments>"
+ "<string>Fplayer</string>"
+ "<string>scale+</string>"
+ "</arguments></invoke>";
string ret = axShockwaveFlash1.CallFunction(com);


При нажатии клавиши программа выпадает с исключением

Необработанное исключение типа "System.Runtime.InteropServices.COMException" в AxInterop.ShockwaveFlashObjects.dll

Дополнительные сведения: В результате вызова компонента COM возвращена ошибка в формате HRESULT E_FAIL.

При загрузке плеера обработчик private void axShockwaveFlash1_FlashCall…
ловит события:

Событие плеера: <invoke name="function(){return (location.href+'')}" returntype="xml"><arguments></arguments></invoke>
Событие плеера: <invoke name="uppodEvent" returntype="xml"><arguments><string>Fplayer</string><string>play</string></arguments></invoke>
Событие плеера: <invoke name="uppodEvent" returntype="xml"><arguments><string>Fplayer</string><string>volume</string></arguments></invoke>
Событие плеера: <invoke name="function Upppoodd(ass){return uppodSend?true:false}" returntype="xml"><arguments><number>1</number></arguments></invoke>

и всё, дальше из обработчика ничего не приходит, в том числе не приходит событие init
Пробовал менять sendToUppod на uppodSend
Пробовал загружать uppod.swf на локальный диск установив флажок JavaScript SWFObject.
Результат тот же — трансляция идёт нормально, при попытке обратится к функциям uppod выпадает исключение

Что-нибудь можете подсказать? Заранее благодарен
Alex2017Ссылка на пост (Смотрели 1856)17.12.17 20:55     Ответить
Ваше имя*
 E-mail* (не публикуется)
 
 
Если пишете о проблеме, то приложите, пожалуйста, ссылку на свой плеер отсюда — Плеер: Файл > Код > Ссылка
Вставка кода — [code][/code] дублировать ответы на e-mail
1
support 18.12.17 - 12:59
Скорее всего в этой среде не работает Javascript API, вы не можете использовать HTML5?
2
Alex2017 18.12.17 - 16:57
Был опыт, когда с помощью компонента weebbrowser и HTML кода добился взаимодействия моего приложения с API IFrame YouTube. Думаю, и здесь может получится. Надеялся, что с использованием axShockwaveFlash будет проще
В принципе мне только и хотелось увеличивать, уменьшать масштаб картинки в плеере. Горячие клавиши (стрелка вверх/вниз) работают, но почему-то только в оконном режиме. При разворачивании в полный экран, работать перестают
3
support 20.12.17 - 14:33
Flash может блокировать эти клавиши в полноэкранном режиме. Попробуйте перейти на новый HTML5 ссылка
4
Alex2017 20.12.17 - 16:49
Спасибо за совет! А данный HTML5 плеер поддерживает воспроизведение прямой трансляции в формате m3u8?
5
Alex2017 20.12.17 - 19:32
Зарегистрировался, изучаю. В настройках есть опция HLS воспроизведение .m3u8 Естественно, включаю, трансляция не идёт, В вашем плеере ссылка идёт нормально. (ссылки на трансляцию меняются время от времени, не могу гарантировать что ссылка останется валидной) Ещё заметил что горячие клавиши, на вашем сайте работают таки и в полноэкранном режиме. Проблема, возможно, в моём приложении
6
support 20.12.17 - 21:50
Сссылка на поток должна быть в формате https, если сайт открыт с https — возможно в этом дело
7
Alex2017 20.12.17 - 23:22
Да, заметил что ваш сайт на http, а playerjs.com на https Подумал, если проигрыватель будет на локальном диске, проблема может решиться. Действительно помогло
8
Alex2017 20.12.17 - 20:43
Извините за множество постов. Скачал плеер на локальный диск, трансляция пошла. Буду изучать
Сообщить об ошибке на сайте
 Uppod © 2008–2020
Сообщить об ошибке на сайте
Если ошибка относится к плееру, а не сайту, либо Вы хотите получить ответ на вопрос —
лучше написать на форуме