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

@ -173,26 +173,40 @@ class AudiopreviewController extends Zend_Controller_Action
$result[] = $this->createElementMap($track); $result[] = $this->createElementMap($track);
} }
} }
}else{ } else {
$result[] = $this->createElementMap($ele); $result[] = $this->createElementMap($ele);
} }
} }
$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

@ -76,7 +76,7 @@ function playAllPlaylist(p_playlistID, p_playlistIndex) {
if ( _idToPostionLookUp !== undefined && viewsPlaylistID == p_playlistID ) { if ( _idToPostionLookUp !== undefined && viewsPlaylistID == p_playlistID ) {
play(p_playlistIndex); play(p_playlistIndex);
}else { } else {
buildplaylist("/audiopreview/get-playlist/playlistID/"+p_playlistID, p_playlistIndex); buildplaylist("/audiopreview/get-playlist/playlistID/"+p_playlistID, p_playlistIndex);
} }
} }
@ -87,7 +87,7 @@ function playBlock(p_blockId, p_blockIndex)
if ( _idToPostionLookUp !== undefined && viewsBlockId == p_blockId ) { if ( _idToPostionLookUp !== undefined && viewsBlockId == p_blockId ) {
play(p_blockIndex); play(p_blockIndex);
}else { } else {
buildplaylist("/audiopreview/get-block/blockId/"+p_blockId, p_blockIndex); buildplaylist("/audiopreview/get-block/blockId/"+p_blockId, p_blockIndex);
} }
} }
@ -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;