ОсновноеRadiotalkПользовательское
Общие вопросы по интернет радио вещанию
7   •   Посмотреть все темы

Делаем себе флеш плеер (Action Script 3.0)

 

727
Leff27 @Leff27
Для AAC потока да

0
6245
Тарас @tarasian666
ну вот в netStrem и не должно "заикатся" после перехода

0
33
Lif @Lif
Уважаемые админы! Расскажите пожалуйста про crossdomain.xml?

Что именно писать в этом файле и куда забрасывать для доступа плеера к парсингу?
Плеер на AS3

Все работает на локальном компе, а когда на сайт заливаю, играет, но не показывает.

В файле crossdomain нужно прописывать адрес и порт вместо звездочек, или оставлять так?
<?xml version="1.0"?>
<cross-domain-policy>
<allow-access-from domain="*" />
</cross-domain-policy>

и играет роль если фаил назван с Большой буквы Crossdomain.xml?

И еще...
Вот такую ошибку показывает Internet Exploer

Error #2044: Необработанный securityError:. text=Error #2048: Нарушение изолированной среды: ********** не может загрузить данные из **********
at player_fla::MainTimeline/frame1()

Сервер VPN
Как разрешить доступ к Status.xsl????????

  1. Security.loadPolicyFile("http://doskater.com/crossdomain.xml");
  2. import flash.display.Graphics;
  3. import flash.events.TimerEvent;
  4. import flash.utils.Timer;
  5. import flash.net.URLRequest;
  6. var p_stat:int=0;
  7. var v_stat:int=0;
  8. var req:URLRequest = new URLRequest("http://109.120.144.244:8000/live");
  9. var context:SoundLoaderContext = new SoundLoaderContext(2500, false);
  10. var potok:Sound = new Sound();
  11. var chanal:SoundChannel = new SoundChannel();
  12. var soud_vol:SoundTransform = new SoundTransform();
  13. var data_html:String;
  14. var f_non_stop:Boolean = true;
  15. var f_live:Boolean = false;
  16. var ob:Object = vol_mc_3;
  17. var urlLoader:URLLoader = new URLLoader();
  18. var timer:Timer = new Timer(2000);
  19. timer.addEventListener(TimerEvent.TIMER, onTick);
  20. play_mc.addEventListener(MouseEvent.CLICK, play_nazh);
  21. vol_mc_1.addEventListener(MouseEvent.CLICK, vol_nazh_1);
  22. vol_mc_2.addEventListener(MouseEvent.CLICK, vol_nazh_2);
  23. vol_mc_3.addEventListener(MouseEvent.CLICK, vol_nazh_3);
  24. vol_mc_4.addEventListener(MouseEvent.CLICK, vol_nazh_4);
  25. vol_mc_5.addEventListener(MouseEvent.CLICK, vol_nazh_5);
  26. v_stat=3;
  27. vol_ur(v_stat);
  28. vol_mc_3.gotoAndStop(2);
  29. function play_nazh(event:MouseEvent):void
  30. {
  31. if (p_stat==0) {
  32. play_mc.gotoAndStop(2);
  33. p_stat=1;
  34. potok.load(req,context);
  35. chanal=potok.play();
  36. vol_ur(v_stat);
  37. timer.start();
  38. }
  39. else {
  40. play_mc.gotoAndStop(1);
  41. p_stat=0;
  42. chanal.stop();
  43. potok.close();
  44. var false_potok:Sound = new Sound();
  45. potok = false_potok;
  46. timer.stop();
  47. curSong.txt.text = "";
  48. listeners.text = "";
  49. }
  50. }
  51. function onTick(event:TimerEvent):void
  52. { if(p_stat == 0) {
  53. curSong.txt.text = "";
  54. listeners.text = "";
  55. return;
  56. }
  57. urlLoader.load(new URLRequest("http://109.120.144.244:8000/status.xsl"));
  58. urlLoader.addEventListener(Event.COMPLETE,onComplete);
  59. }
  60. function onComplete(event:Event):void
  61. {
  62. data_html = event.target.data;
  63. curSong.txt.htmlText = antara(data_html, "<td>Current Song:</td>\n<td class=\"streamdata\">", "</td>");
  64. listeners.text = antara(data_html, "Current Listeners:</td>\n<td class=\"streamdata\">", "</td>");
  65. if(antara(data_html, "<td><h3>Mount Point ", "</h3></td>") == "/live") {
  66. if(f_non_stop) {
  67. f_non_stop = false;
  68. f_live = true;
  69. chanal.stop();
  70. var false_potok1:Sound = new Sound();
  71. potok = false_potok1;
  72. potok.load(req, context);
  73. chanal = potok.play();
  74. vol_ur(v_stat);
  75. }
  76. } else {
  77. if(f_live) {
  78. f_live = false;
  79. f_non_stop = true;
  80. chanal.stop();
  81. var false_potok2:Sound = new Sound();
  82. potok = false_potok2;
  83. potok.load(req, context);
  84. chanal = potok.play();
  85. vol_ur(v_stat);
  86. }
  87. }
  88. data_html = "";
  89. }
  90. function antara(string:String, st:String, end:String):String {
  91. string = " " + string;
  92. var ini:Number = string.indexOf(st);
  93. if (ini == 0) return "";
  94. ini += st.length;
  95. var len:Number = string.indexOf(end, ini) - ini;
  96. return string.substr(ini,len);
  97. }
  98. function vol_nazh_1(event:MouseEvent):void
  99. {
  100. ob.gotoAndStop(1);
  101. ob = vol_mc_1;
  102. ob.gotoAndStop(2);
  103. v_stat=1;
  104. vol_ur(v_stat);
  105. }
  106. function vol_nazh_2(event:MouseEvent):void
  107. {
  108. ob.gotoAndStop(1);
  109. ob = vol_mc_2;
  110. ob.gotoAndStop(2);
  111. v_stat=2;
  112. vol_ur(v_stat);
  113. }
  114. function vol_nazh_3(event:MouseEvent):void
  115. {
  116. ob.gotoAndStop(1);
  117. ob = vol_mc_3;
  118. ob.gotoAndStop(2);
  119. v_stat=3;
  120. vol_ur(v_stat);
  121. }
  122. function vol_nazh_4(event:MouseEvent):void
  123. {
  124. ob.gotoAndStop(1);
  125. ob = vol_mc_4;
  126. ob.gotoAndStop(2);
  127. v_stat=4;
  128. vol_ur(v_stat);
  129. }
  130. function vol_nazh_5(event:MouseEvent):void
  131. {
  132. ob.gotoAndStop(1);
  133. ob = vol_mc_5;
  134. ob.gotoAndStop(2);
  135. v_stat=5;
  136. vol_ur(v_stat);
  137. }
  138. function vol_ur(v_stat)
  139. {
  140. soud_vol.volume = v_stat*1/6;
  141. chanal.soundTransform = soud_vol;
  142. }

Отредактировано Lif - 23.09.2012
0
6245
Тарас @tarasian666
Оставить файл как есть, с маленькой буквы, залить в папку web (айскаста), путь в коде не нужно указывать. В настройках "публикации" флеша установить network only

0
727
Leff27 @Leff27
Для подгрузки названия трека CrossDomain не обязателен. crossdomain.xml нужен для эквалайзера...

Отредактировано Leff27 - 24.09.2012
0
313
Krueger @Krueger
Leff27 пишет:

Для подгрузки названия трека CrossDomain не обязателен. crossdomain.xml нужен для эквалайзера...

Странно, а я всегда думал, что файл crossdomain.xml создается для разрешения доступа...

0
727
Leff27 @Leff27
Я имел в виду, что разрешать доступ для парсинга трека не требуется...
Хотя, я вспомнил, что всегда дергал php и не парсил напрямую с status.xsl, поэтому не утверждаю на 100%

ЗЫ Проще парсить метадату потока, чем дергать status.xsl

Отредактировано Leff27 - 24.09.2012
0
6245
Тарас @tarasian666
для подгрузки названия трека самим флешом crossdomain.xml нужен, если сторонним скриптом в той же папке тогда не нужен

по крайней мере нужен именно для AS2 для подгрузки названия, недавно опять с этим сталкивался

для чтения флеш заголовков нетстримом он не нужен

0
1
seregadefiant @seregadefiant
по поводу мета-тегов, так flash может брать из обычного txt файла. главное чтобы в нем грамотно был записан скрипт, например:
{"ARTIST":"No data","NAME":"No data","unix_stop_time":1384774633,"id":1,"timeleft":145,"image":""} (после no data не относится к скрипту)
ну или обычный html файл, если хотите, могу написать

0
6245
Тарас @tarasian666
америку открыл...

0
1
raidcall @raidcall
Можете подсказать как сделать автозапуск?

0
22
Санеккк @Санеккк
Приветствую!
Такой вопрос: AS3, поток недоступен по каким-либо причинам, но пользователь этого не знает и жмет "плей". Срабатывает слушатель ошибок и совершает нужные действия. После чего пользователь пробует еще раз и снова нажимает "плей", но на этот раз ошибка не обрабатывается и необходимые действия не совершаются. Но вылазит "SecurityError: Error #2000: Отсутствует активный контекст безопасности.".
Как создать/добавить этот контекст?

0





Согласие на обработку данных на нашем сайте

Продолжая просматривать страницу, вы соглашаетесь с использованием файлов «Cookie» и с Политикой конфиденциальности «Privacy».
Наверху или внизу страницы вы можете изменить валюту и язык по умолчанию. Английская версия сайта ещё находится в доработке и доступна не полностью.