Embed Player
Added stream modes Unhardcoded some values Disabled opus streams
This commit is contained in:
parent
5c4533d785
commit
2ae4d6c1c3
5 changed files with 67 additions and 22 deletions
|
@ -15,7 +15,6 @@ class EmbeddablePlayerController extends Zend_Controller_Action
|
||||||
$this->view->headScript()->appendFile($baseUrl.'js/airtime/embeddableplayer/mrp.js?'.$CC_CONFIG['airtime_version']);
|
$this->view->headScript()->appendFile($baseUrl.'js/airtime/embeddableplayer/mrp.js?'.$CC_CONFIG['airtime_version']);
|
||||||
$this->view->headScript()->appendFile($baseUrl.'js/airtime/embeddableplayer/embeddableplayer.js?'.$CC_CONFIG['airtime_version']);
|
$this->view->headScript()->appendFile($baseUrl.'js/airtime/embeddableplayer/embeddableplayer.js?'.$CC_CONFIG['airtime_version']);
|
||||||
|
|
||||||
|
|
||||||
$form = new Application_Form_EmbeddablePlayer();
|
$form = new Application_Form_EmbeddablePlayer();
|
||||||
|
|
||||||
if ($form->getElement('player_stream_url')->getAttrib('numberOfEnabledStreams') > 0) {
|
if ($form->getElement('player_stream_url')->getAttrib('numberOfEnabledStreams') > 0) {
|
||||||
|
@ -34,11 +33,11 @@ class EmbeddablePlayerController extends Zend_Controller_Action
|
||||||
|
|
||||||
$this->view->mrp_js = Application_Common_HTTPHelper::getStationUrl() . "js/airtime/embeddableplayer/mrp.js";
|
$this->view->mrp_js = Application_Common_HTTPHelper::getStationUrl() . "js/airtime/embeddableplayer/mrp.js";
|
||||||
$this->view->muses_swf = Application_Common_HTTPHelper::getStationUrl() . "js/airtime/embeddableplayer/muses.swf";
|
$this->view->muses_swf = Application_Common_HTTPHelper::getStationUrl() . "js/airtime/embeddableplayer/muses.swf";
|
||||||
$this->view->skin = Application_Common_HTTPHelper::getStationUrl() . "js/airtime/embeddableplayer/ffmp3-mcclean.xml";
|
$stream = $request->getParam('stream');
|
||||||
$this->view->codec = $request->getParam('codec');
|
$streamData = Application_Model_StreamSetting::getEnabledStreamData();
|
||||||
//$this->view->streamURL = $request->getParam('url');
|
$selectedStreamData = $streamData[$stream];
|
||||||
//$stream = $request->getParam('stream');
|
$this->view->streamURL = $selectedStreamData["url"];
|
||||||
$this->view->streamURL = "http://127.0.0.1:8000/airtime_128";
|
$this->view->codec = $selectedStreamData["codec"];
|
||||||
$this->view->displayMetadata = $request->getParam('display_metadata');
|
$this->view->displayMetadata = $request->getParam('display_metadata');
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -13,30 +13,48 @@ class Application_Form_EmbeddablePlayer extends Zend_Form_SubForm
|
||||||
$displayTrackMetadata->setLabel(_('Display track metadata?'));
|
$displayTrackMetadata->setLabel(_('Display track metadata?'));
|
||||||
$this->addElement($displayTrackMetadata);
|
$this->addElement($displayTrackMetadata);
|
||||||
|
|
||||||
|
$streamMode = new Zend_Form_Element_Radio('player_stream_mode');
|
||||||
|
$streamMode->setLabel(_('Select Stream:'));
|
||||||
|
$streamMode->setMultiOptions(
|
||||||
|
array(
|
||||||
|
"a" => "Use a mobile stream if possible, when appropriate. Otherwise use the highest quality stream.",
|
||||||
|
"b" => "Select a stream"
|
||||||
|
)
|
||||||
|
);
|
||||||
|
$streamMode->setValue("a");
|
||||||
|
$this->addElement($streamMode);
|
||||||
|
|
||||||
$streamURL = new Zend_Form_Element_Radio('player_stream_url');
|
$streamURL = new Zend_Form_Element_Radio('player_stream_url');
|
||||||
|
$opusStreamCount = 0;
|
||||||
$urlOptions = Array();
|
$urlOptions = Array();
|
||||||
foreach(Application_Model_StreamSetting::getEnabledStreamUrls() as $type => $url) {
|
foreach(Application_Model_StreamSetting::getEnabledStreamData() as $stream => $data) {
|
||||||
if ($type == "opus") continue;
|
$urlOptions[$stream] = $data["codec"]." - ".$data["bitrate"]."kbps";
|
||||||
$urlOptions[$url] = $type;
|
if ($data["codec"] == "opus") {
|
||||||
|
$opusStreamCount += 1;
|
||||||
|
$urlOptions[$stream] .=" - The player does not support Opus streams.";
|
||||||
|
}
|
||||||
}
|
}
|
||||||
$streamURL->setMultiOptions(
|
$streamURL->setMultiOptions(
|
||||||
$urlOptions
|
$urlOptions
|
||||||
);
|
);
|
||||||
Logging::info($urlOptions);
|
|
||||||
$streamURL->setValue(array_keys($urlOptions)[0]);
|
|
||||||
$streamURL->setLabel(_('Select stream:'));
|
|
||||||
$streamURL->setAttrib('codec', array_values($urlOptions)[0]);
|
|
||||||
$streamURL->setAttrib('numberOfEnabledStreams', sizeof($urlOptions));
|
|
||||||
$this->addElement($streamURL);
|
|
||||||
|
|
||||||
$url = $streamURL->getValue();
|
foreach ($urlOptions as $o => $v) {
|
||||||
$codec = $streamURL->getAttrib('codec');
|
if (strpos($v, "opus") !== false) {
|
||||||
|
continue;
|
||||||
|
} else {
|
||||||
|
$streamURL->setValue($o);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
$streamURL->setAttrib('numberOfEnabledStreams', sizeof($urlOptions)-$opusStreamCount);
|
||||||
|
$streamURL->setAttrib("disabled", "disabled");
|
||||||
|
$this->addElement($streamURL);
|
||||||
|
|
||||||
$embedSrc = new Zend_Form_Element_Text('player_embed_src');
|
$embedSrc = new Zend_Form_Element_Text('player_embed_src');
|
||||||
$embedSrc->setAttrib("readonly", "readonly");
|
$embedSrc->setAttrib("readonly", "readonly");
|
||||||
$embedSrc->setAttrib("class", "embed-player-text-box");
|
$embedSrc->setAttrib("class", "embed-player-text-box");
|
||||||
//$embedSrc->setValue('<iframe frameborder="0" src="'.Application_Common_HTTPHelper::getStationUrl().'embeddableplayer/embed-code?url='.$url.'&codec='.$codec.'"></iframe>');
|
$embedSrc->setValue('<iframe frameborder="0" src="'.Application_Common_HTTPHelper::getStationUrl().'embeddableplayer/embed-code?stream-mode=a"></iframe>');
|
||||||
$embedSrc->setValue('<iframe frameborder="0" src="'.Application_Common_HTTPHelper::getStationUrl().'embeddableplayer/embed-code?stream=stream1&codec='.$codec.'"></iframe>');
|
|
||||||
$embedSrc->removeDecorator('label');
|
$embedSrc->removeDecorator('label');
|
||||||
$this->addElement($embedSrc);
|
$this->addElement($embedSrc);
|
||||||
|
|
||||||
|
|
|
@ -78,6 +78,25 @@ class Application_Model_StreamSetting
|
||||||
return $urls;
|
return $urls;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static function getEnabledStreamData()
|
||||||
|
{
|
||||||
|
$streams = Array();
|
||||||
|
$streamIds = self::getEnabledStreamIds();
|
||||||
|
foreach ($streamIds as $id) {
|
||||||
|
$streamData = self::getStreamData($id);
|
||||||
|
$prefix = $id."_";
|
||||||
|
$host = $streamData[$prefix."host"];
|
||||||
|
$port = $streamData[$prefix."port"];
|
||||||
|
$mount = $streamData[$prefix."mount"];
|
||||||
|
$streams[$id] = Array(
|
||||||
|
"url" => "http://$host:$port/$mount",
|
||||||
|
"codec" => $streamData[$prefix."type"],
|
||||||
|
"bitrate" => $streamData[$prefix."bitrate"]
|
||||||
|
);
|
||||||
|
}
|
||||||
|
return $streams;
|
||||||
|
}
|
||||||
|
|
||||||
/* Returns the id's of all streams that are enabled in an array. An
|
/* Returns the id's of all streams that are enabled in an array. An
|
||||||
* example of the array returned in JSON notation is ["s1", "s2", "s3"] */
|
* example of the array returned in JSON notation is ["s1", "s2", "s3"] */
|
||||||
public static function getEnabledStreamIds()
|
public static function getEnabledStreamIds()
|
||||||
|
|
|
@ -5,6 +5,8 @@
|
||||||
|
|
||||||
<?php echo $this->element->getElement('player_display_track_metadata'); ?>
|
<?php echo $this->element->getElement('player_display_track_metadata'); ?>
|
||||||
|
|
||||||
|
<?php echo $this->element->getElement('player_stream_mode'); ?>
|
||||||
|
|
||||||
<?php echo $this->element->getElement('player_stream_url'); ?>
|
<?php echo $this->element->getElement('player_stream_url'); ?>
|
||||||
|
|
||||||
<?php echo $this->element->getElement('player_preview_label')->renderLabel(); ?>
|
<?php echo $this->element->getElement('player_preview_label')->renderLabel(); ?>
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
function generateEmbedSrc()
|
function updateEmbedSrcParams()
|
||||||
{
|
{
|
||||||
var $embedCodeParams = "?";
|
var $embedCodeParams = "?";
|
||||||
var $streamMode = getStreamMode();
|
var $streamMode = getStreamMode();
|
||||||
|
@ -20,19 +20,26 @@ function getStreamMode() {
|
||||||
}
|
}
|
||||||
|
|
||||||
$(document).ready(function() {
|
$(document).ready(function() {
|
||||||
|
|
||||||
$("#player_stream_mode-element").change(function() {
|
$("#player_stream_mode-element").change(function() {
|
||||||
var $streamMode = getStreamMode();
|
var $streamMode = getStreamMode();
|
||||||
if ($streamMode == "a") {
|
if ($streamMode == "a") {
|
||||||
$("#player_stream_url-element input[type='radio']").attr("disabled", "disabled");
|
$("#player_stream_url-element input[type='radio']").attr("disabled", "disabled");
|
||||||
} else if ($streamMode == "b") {
|
} else if ($streamMode == "b") {
|
||||||
$("#player_stream_url-element input[type='radio']").removeAttr("disabled");
|
$("#player_stream_url-element input[type='radio']").removeAttr("disabled");
|
||||||
|
|
||||||
|
$("input[name=player_stream_url]").each(function(i, obj) {
|
||||||
|
if ($(this).parent().text().indexOf("opus") >= 0) {
|
||||||
|
$(this).attr("disabled", "disabled");
|
||||||
|
}
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
generateEmbedSrc();
|
updateEmbedSrcParams();
|
||||||
});
|
});
|
||||||
|
|
||||||
$("#player_stream_url-element").change(function() {
|
$("#player_stream_url-element").change(function() {
|
||||||
generateEmbedSrc();
|
updateEmbedSrcParams();
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue