CakePHP, диалоговое окно jQuery и потоковый проигрыватель не работают должным образом

В моих файлах просмотра у меня есть звуковые фрагменты, которые я хочу воспроизвести через диалоговое окно jQuery с помощью потокового проигрывателя. Все работает кроме плеера не показывает. Я сузил проблему до того, где я должен предоставить URL-адрес, где находится SWF-файл проигрывателя. Я хоть убей не могу определить, какую локацию ищет игрок.

Подводя итог, мои файлы:

Скрипт потока - /app/webroot/js/flowplayer/flowplayer-3.2.10.min.js

Flowplayer SWF-/app/webroot/js/flowplayer/flowplayer-3.2.11.swf

Тогда у меня есть следующее:

 // Within the default.ctp in /app/view/layouts:

 <script type="text/javascript">
// Audio player information:
$(document).ready(function() {

   $(".player").click(function() {
      $("<div></div>").load($(this).attr("href")).dialog(); 
      return false;
   });
});
</script>

// Example in a view file where I am calling the model view:

 <?php
 echo $this->Html->link($this->Html->image("icons/control_play_blue.png", array("alt" => "Play audio file")),array("controller" => "surveys", "action" => "audioplayer","questions",$question['Question']['ivr_recording_file'], $question['Question']['mime']),array('escape' => false, "class" => "player"));
 ?>

 // Within the controller:

 /*
     * Audio player for IVR audio files for the site:
     * 
     */
    public function audioplayer($type,$audio,$mime) {

        $this->layout = false;
        //$this->autoRender = false;

        // Determine what type of file it is so that we can get the location:
       if($type == "ivr") {
           $location = "";
       } else {
           $location = "";
       }
       $file = $audio.".".$mime;

       $this->set(compact("file","type"));
    }

 // Lastly, within the view of the controller call (this is where the URL is wrong)

  <script type="text/javascript">
$(document).ready(function() {
   flowplayer("player", "flowplayer-3.2.11.swf"); 
});
 </script>
 <?php 
 echo $this->Html->Link("","/files/uploads/".$type."/".$file,array("id" => "player"));
 ?>

person mauzilla    schedule 22.06.2012    source источник
comment
файл swf относится к серверу. Так что, если он находится в корне вашего каталога, это сработает. если он находится внутри складок, вам нужно явно объявить их. было бы лучше, если это возможно, использовать /path/to/my/flowlpayer/flowplayer-3.2.11.swf, это гарантирует, что независимо от того, на какой странице они находятся или насколько они глубоки, файл swf будет вызываться.   -  person Ohgodwhy    schedule 22.06.2012
comment
@Ohgodwhy, просто чтобы разъяснить всем остальным, path/to/my/flowplayer должен находиться в дереве папок веб-корня, потому что, если нет, Cake будет искать соответствующий контроллер / действие на пути.   -  person pollirrata    schedule 22.06.2012
comment
@Pollirrata да - спасибо, это очень важно, и я пропустил это.   -  person Ohgodwhy    schedule 22.06.2012


Ответы (1)


Как предложил @Ohgodwhy, у меня был неверный путь, это должен быть абсолютный путь к файлу.

person mauzilla    schedule 25.06.2012