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/embeddableplayer.js?'.$CC_CONFIG['airtime_version']);
|
||||
|
||||
|
||||
$form = new Application_Form_EmbeddablePlayer();
|
||||
|
||||
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->muses_swf = Application_Common_HTTPHelper::getStationUrl() . "js/airtime/embeddableplayer/muses.swf";
|
||||
$this->view->skin = Application_Common_HTTPHelper::getStationUrl() . "js/airtime/embeddableplayer/ffmp3-mcclean.xml";
|
||||
$this->view->codec = $request->getParam('codec');
|
||||
//$this->view->streamURL = $request->getParam('url');
|
||||
//$stream = $request->getParam('stream');
|
||||
$this->view->streamURL = "http://127.0.0.1:8000/airtime_128";
|
||||
$stream = $request->getParam('stream');
|
||||
$streamData = Application_Model_StreamSetting::getEnabledStreamData();
|
||||
$selectedStreamData = $streamData[$stream];
|
||||
$this->view->streamURL = $selectedStreamData["url"];
|
||||
$this->view->codec = $selectedStreamData["codec"];
|
||||
$this->view->displayMetadata = $request->getParam('display_metadata');
|
||||
}
|
||||
}
|
|
@ -13,30 +13,48 @@ class Application_Form_EmbeddablePlayer extends Zend_Form_SubForm
|
|||
$displayTrackMetadata->setLabel(_('Display track metadata?'));
|
||||
$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');
|
||||
$opusStreamCount = 0;
|
||||
$urlOptions = Array();
|
||||
foreach(Application_Model_StreamSetting::getEnabledStreamUrls() as $type => $url) {
|
||||
if ($type == "opus") continue;
|
||||
$urlOptions[$url] = $type;
|
||||
foreach(Application_Model_StreamSetting::getEnabledStreamData() as $stream => $data) {
|
||||
$urlOptions[$stream] = $data["codec"]." - ".$data["bitrate"]."kbps";
|
||||
if ($data["codec"] == "opus") {
|
||||
$opusStreamCount += 1;
|
||||
$urlOptions[$stream] .=" - The player does not support Opus streams.";
|
||||
}
|
||||
}
|
||||
$streamURL->setMultiOptions(
|
||||
$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();
|
||||
$codec = $streamURL->getAttrib('codec');
|
||||
foreach ($urlOptions as $o => $v) {
|
||||
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->setAttrib("readonly", "readonly");
|
||||
$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=stream1&codec='.$codec.'"></iframe>');
|
||||
$embedSrc->setValue('<iframe frameborder="0" src="'.Application_Common_HTTPHelper::getStationUrl().'embeddableplayer/embed-code?stream-mode=a"></iframe>');
|
||||
$embedSrc->removeDecorator('label');
|
||||
$this->addElement($embedSrc);
|
||||
|
||||
|
|
|
@ -78,6 +78,25 @@ class Application_Model_StreamSetting
|
|||
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
|
||||
* example of the array returned in JSON notation is ["s1", "s2", "s3"] */
|
||||
public static function getEnabledStreamIds()
|
||||
|
|
|
@ -5,6 +5,8 @@
|
|||
|
||||
<?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_preview_label')->renderLabel(); ?>
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
function generateEmbedSrc()
|
||||
function updateEmbedSrcParams()
|
||||
{
|
||||
var $embedCodeParams = "?";
|
||||
var $streamMode = getStreamMode();
|
||||
|
@ -20,19 +20,26 @@ function getStreamMode() {
|
|||
}
|
||||
|
||||
$(document).ready(function() {
|
||||
|
||||
$("#player_stream_mode-element").change(function() {
|
||||
var $streamMode = getStreamMode();
|
||||
if ($streamMode == "a") {
|
||||
$("#player_stream_url-element input[type='radio']").attr("disabled", "disabled");
|
||||
} else if ($streamMode == "b") {
|
||||
$("#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() {
|
||||
generateEmbedSrc();
|
||||
updateEmbedSrcParams();
|
||||
});
|
||||
});
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue