我试图制作音频播放器扩展程序并选择将Wordpress Audio包裹起来here 到目前为止,我已经在所有基于Webkit的浏览器上工作,但在Firefox上没有。我试图启动自动启动,我可以在firefox中听到音频,它告诉我flash和JS代码加载正常但没有显示(参见附图)。
我已经尝试了所有选项并且无法正常工作。这是我的第一次延期,所以请原谅任何明显的事情并向我指出。
以下是图片
这是完整的类代码
<?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&animation=no&soundFile=/uploads/mp3/2013_12_07_18_15_16.mp3&playerID=audioplayer_0250541001386451633">
</object>
<script type="text/javascript">
/*<![CDATA[*/
AudioPlayer.embed("audioplayer_0250541001386451633", {soundFile: "/uploads/mp3/2013_12_07_18_15_16.mp3"});
/*]]>*/
</script>
答案 0 :(得分:0)
Firefox不允许从Localhost加载Flash。 我不知道为什么它的政策,但这不是一个错误,而是 * 功能 *