CC-1665: Scheduled stream rebroadcasting and recording

-ability to preview webstreams inside of playlists
This commit is contained in:
Martin Konecny 2012-08-09 16:49:20 -04:00
parent 952f18dc3c
commit c73328e297
2 changed files with 85 additions and 63 deletions

View file

@ -180,19 +180,33 @@ class AudiopreviewController extends Zend_Controller_Action
$this->_helper->json($result); $this->_helper->json($result);
} }
function createElementMap($track){ private function createElementMap($track)
{
$elementMap = array( 'element_title' => isset($track['track_title'])?$track['track_title']:"", $elementMap = array( 'element_title' => isset($track['track_title'])?$track['track_title']:"",
'element_artist' => isset($track['artist_name'])?$track['artist_name']:"", 'element_artist' => isset($track['artist_name'])?$track['artist_name']:"",
'element_id' => isset($track['id'])?$track['id']:"", 'element_id' => isset($track['id'])?$track['id']:"",
'element_position' => isset($track['position'])?$track['position']:"", 'element_position' => isset($track['position'])?$track['position']:"",
); );
$elementMap['type'] = $track['type'];
if ($track['type'] == 0) {
$fileExtension = pathinfo($track['path'], PATHINFO_EXTENSION); $fileExtension = pathinfo($track['path'], PATHINFO_EXTENSION);
//type is file
//TODO: use MIME type for this
if (strtolower($fileExtension) === 'mp3') { if (strtolower($fileExtension) === 'mp3') {
$elementMap['element_mp3'] = $track['item_id']; $elementMap['element_mp3'] = $track['item_id'];
} else if (strtolower($fileExtension) === 'ogg') { } else if (strtolower($fileExtension) === 'ogg') {
$elementMap['element_oga'] = $track['item_id']; $elementMap['element_oga'] = $track['item_id'];
} else { } else {
//the media was neither mp3 or ogg //the media was neither mp3 or ogg
throw new Exception("Unknown file type");
}
$elementMap['uri'] = "/api/get-media/file/".$track['item_id'];
} else {
$elementMap['uri'] = $track['path'];
} }
return $elementMap; return $elementMap;
} }

View file

@ -125,19 +125,27 @@ function buildplaylist(p_url, p_playIndex) {
var total = 0; var total = 0;
for(index in data){ for(index in data){
if (data[index]['type'] == 0) {
if (data[index]['element_mp3'] != undefined){ if (data[index]['element_mp3'] != undefined){
media = {title: data[index]['element_title'], media = {title: data[index]['element_title'],
artist: data[index]['element_artist'], artist: data[index]['element_artist'],
mp3:"/api/get-media/file/"+data[index]['element_mp3'] mp3:data[index]['uri']
}; };
} else if (data[index]['element_oga'] != undefined) { } else if (data[index]['element_oga'] != undefined) {
media = {title: data[index]['element_title'], media = {title: data[index]['element_title'],
artist: data[index]['element_artist'], artist: data[index]['element_artist'],
oga:"/api/get-media/file/"+data[index]['element_oga'] oga:data[index]['uri']
}; };
} }
} else if (data[index]['type'] == 1) {
media = {title: data[index]['element_title'],
artist: data[index]['element_artist'],
mp3:data[index]['uri']
};
}
if (media) {
myPlaylist[index] = media; myPlaylist[index] = media;
}
// we should create a map according to the new position in the player itself // we should create a map according to the new position in the player itself
// total is the index on the player // total is the index on the player
_idToPostionLookUp[data[index]['element_id']] = total; _idToPostionLookUp[data[index]['element_id']] = total;