Flash Player不会显示在Firefox上,而不会显示在Chromium上

时间:2013-12-07 22:08:08

标签: javascript flash firefox yii

我试图制作音频播放器扩展程序并选择将Wordpress Audio包裹起来here 到目前为止,我已经在所有基于Webkit的浏览器上工作,但在Firefox上没有。我试图启动自动启动,我可以在firefox中听到音频,它告诉我flash和JS代码加载正常但没有显示(参见附图)。

我已经尝试了所有选项并且无法正常工作。这是我的第一次延期,所以请原谅任何明显的事情并向我指出。

以下是图片

Working in Chromium

Errornous picture

这是完整的类代码

<?php
/**
  * Extension to Play Music Files
  * Copyright 2013 Hosanna Higher Technologies
  * Written by Stefano Mtangoo
  * Wraps Wordpress Media Player
  *
*/
class AudioPlayer extends CWidget
{
    /**
     * Audio Player JS File
     * For internal uses only
     */
    protected $playerjs; 

    /**
     * Audio Player Flash File
     * For internal uses only
     */
    protected $playerswf;// holds player flashplayer

    /**
     * Player Width 
     * @var integer
     */
    public $width = 290;// holds player width
    //=====================Reserver for future===
    /**
     * Player title 
     * @var string
     */
    public $title = "";// holds player width

    /**
     * Player descritption 
     * @var string
     */
    public $summary = "";// holds player width

    /**
     * Player Options
     * To see more information about using aforementioned player for non-Wordpress project, 
     * please visit {@link http://wpaudioplayer.com/standalone}
     * @var array
     */
    public $options = array();

    /**
     * Player HTML additional attributes
     * @var array
     */
    public $htmlOptions = array();

    /**
     * Player files Passed
     * @var array
     */
    public $tracks = array();

    /*
    public function renderContentBegin()
    {
        echo CHtml::openTag('div', $this->htmlContentOptions);
        if (!empty($this->content))
            echo $this->content;
    }
    */
    //=================================

    /*
     * called when we use $this->beginWidget to insert a widget in a view
    */
    public function init()
    {
        if($this->playerjs===null)
        {
            $file=dirname(__FILE__).DIRECTORY_SEPARATOR.'assets'.DIRECTORY_SEPARATOR.'audio-player.js';
            $this->playerjs=Yii::app()->getAssetManager()->publish($file);
        }
        if($this->playerswf===null)
        {
            $file=dirname(__FILE__).DIRECTORY_SEPARATOR.'assets'.DIRECTORY_SEPARATOR.'player.swf';
            $this->playerswf=Yii::app()->getAssetManager()->publish($file);
        }

        $this->registerClientScript();

        parent::init();
    }

    /*
     * is called when we call $this->endWidget
    */
    public function run()
    {
        //put all tracks
        $id = microtime();
        $id = str_replace(" ", "", $id);
        $id = str_replace(".", "", $id);

        $this->htmlOptions['id'] = 'audioplayer_'.$id;//replace ID

        echo CHtml::openTag('div', $this->htmlOptions);
        echo '<p> Your Browser does not support flash!</p>';
        echo CHtml::closeTag('div') . "\n";

        $files = implode(',', $this->tracks);

        $tracktoAdd = "AudioPlayer.embed(\"audioplayer_{$id}\", {soundFile: \"{$files}\"}); "; 
        echo CHtml::script($tracktoAdd);
        //Yii::app()->clientScript->registerScript("audioplayer_js_{$id}",$tracktoAdd/*, CClientScript::POS_BEGIN  */);

    }

    protected function registerClientScript()
    {
        $options = ""; 
        foreach ($this->options as $field => $value)
        {
           if(!empty($options))
           {
            $options = $options. ",".$field.':'.$value;
           }
           else
           {
            $options = $options.$field.':'.$value;
           }
        }

         // publish CSS or JavaScript file here...
        $cs=Yii::app()->clientScript;
        //$cs->registerCssFile($cssFile); 
        $cs->registerScriptFile($this->playerjs);

        $JscodeForPlayer = 
                        " 
                        AudioPlayer.setup(\"$this->playerswf\", {  
                            {$options}, 
                        });";

        if(!$cs->isScriptRegistered('audioplayer'))
            $cs->registerScript('audioplayer', $JscodeForPlayer, CClientScript::POS_HEAD  ); //Player JS
    }
}

以下是浏览器中的输出 的 FF

<object id="audioplayer_0590975001386453307" width="200" height="24" type="application/x-shockwave-flash" name="audioplayer_0590975001386453307" style="outline: none" data="/assets/b5645ee9/player.swf">
<param name="bgcolor" value="#FFFFFF">
<param name="wmode" value="transparent">
<param name="menu" value="false">
<param name="flashvars" value="autostart=no&animation=no&soundFile=/uploads/mp3/2013_12_07_18_15_16.mp3,/uploads/mp3/2013_12_07_18_15_16.mp3,/uploads/mp3/2013_12_07_18_15_16.mp3&playerID=audioplayer_0590975001386453307">
</object>
<script type="text/javascript">
/*<![CDATA[*/
AudioPlayer.embed("audioplayer_0590975001386453307", {soundFile: "/uploads/mp3/2013_12_07_18_15_16.mp3,/uploads/mp3/2013_12_07_18_15_16.mp3,/uploads/mp3/2013_12_07_18_15_16.mp3"});
/*]]>*/
</script>

<object type="application/x-shockwave-flash" name="audioplayer_0250541001386451633" style="outline: none" data="/assets/b5645ee9/player.swf" width="200" height="24" id="audioplayer_0250541001386451633">
<param name="bgcolor" value="#FFFFFF">
<param name="wmode" value="transparent">
<param name="menu" value="false">
<param name="flashvars" value="autostart=no&amp;animation=no&amp;soundFile=/uploads/mp3/2013_12_07_18_15_16.mp3&amp;playerID=audioplayer_0250541001386451633">
</object>

<script type="text/javascript">
/*<![CDATA[*/
AudioPlayer.embed("audioplayer_0250541001386451633", {soundFile: "/uploads/mp3/2013_12_07_18_15_16.mp3"}); 
/*]]>*/
</script>

1 个答案:

答案 0 :(得分:0)

Firefox不允许从Localhost加载Flash。 我不知道为什么它的政策,但这不是一个错误,而是 * 功能 *