From 3ced92db7a8f346c8922ba79bc36a6f61dbfc797 Mon Sep 17 00:00:00 2001 From: Martin Konecny Date: Fri, 14 Sep 2012 16:51:14 -0400 Subject: [PATCH] CC-4415: Smart Block audio preview doesn't work --- .../controllers/AudiopreviewController.php | 31 ++++++++++++------- airtime_mvc/application/models/Preference.php | 5 ++- .../airtime/audiopreview/preview_jplayer.js | 12 ++++++- 3 files changed, 33 insertions(+), 15 deletions(-) diff --git a/airtime_mvc/application/controllers/AudiopreviewController.php b/airtime_mvc/application/controllers/AudiopreviewController.php index 69b82939e..c66539c37 100644 --- a/airtime_mvc/application/controllers/AudiopreviewController.php +++ b/airtime_mvc/application/controllers/AudiopreviewController.php @@ -197,16 +197,20 @@ class AudiopreviewController extends Zend_Controller_Action $elementMap['type'] = $track['type']; if ($track['type'] == 0) { - $fileExtension = pathinfo($track['path'], PATHINFO_EXTENSION); + $mime = $track['mime']; //type is file - //TODO: use MIME type for this - if (strtolower($fileExtension) === 'mp3') { + if (strtolower($mime) === 'audio/mp3') { $elementMap['element_mp3'] = $track['item_id']; - } elseif (strtolower($fileExtension) === 'ogg') { + } elseif (strtolower($mime) === 'audio/ogg') { $elementMap['element_oga'] = $track['item_id']; + } elseif (strtolower($mime) === 'audio/mp4') { + $elementMap['element_m4a'] = $track['item_id']; + } elseif (strtolower($mime) === 'audio/wav') { + $elementMap['element_wav'] = $track['item_id']; + } elseif (strtolower($mime) === 'audio/x-flac') { + $elementMap['element_flac'] = $track['item_id']; } else { - //the media was neither mp3 or ogg - throw new Exception("Unknown file type"); + throw new Exception("Unknown file type: $mime"); } $elementMap['uri'] = "/api/get-media/file/".$track['item_id']; @@ -278,14 +282,19 @@ class AudiopreviewController extends Zend_Controller_Action $elementMap['type'] = $track['type']; if ($track['type'] == 0) { - $fileExtension = pathinfo($track['filepath'], PATHINFO_EXTENSION); - if (strtolower($fileExtension) === 'mp3') { + $mime = $track['mime']; + if (strtolower($mime) === 'audio/mp3') { $elementMap['element_mp3'] = $track['item_id']; - } elseif (strtolower($fileExtension) === 'ogg') { + } elseif (strtolower($mime) === 'audio/ogg') { $elementMap['element_oga'] = $track['item_id']; + } elseif (strtolower($mime) === 'audio/mp4') { + $elementMap['element_m4a'] = $track['item_id']; + } elseif (strtolower($mime) === 'audio/wav') { + $elementMap['element_wav'] = $track['item_id']; + } elseif (strtolower($mime) === 'audio/x-flac') { + $elementMap['element_flac'] = $track['item_id']; } else { - //the media was neither mp3 or ogg - throw new Exception("Unknown file type"); + throw new Exception("Unknown file type: $mime"); } $elementMap['uri'] = "/api/get-media/file/".$track['item_id']; diff --git a/airtime_mvc/application/models/Preference.php b/airtime_mvc/application/models/Preference.php index aae45b0c3..807d23b6d 100644 --- a/airtime_mvc/application/models/Preference.php +++ b/airtime_mvc/application/models/Preference.php @@ -93,10 +93,9 @@ class Application_Model_Preference } $result = $con->query($sql)->fetchColumn(0); //$result = Application_Common_Database::prepareAndExecute($sql, $paramMap, 'column'); - if ($result == 0) - + if ($result == 0) { return ""; - else { + } else { $sql = "SELECT valstr FROM cc_pref" ." WHERE keystr = '$key'"; /*." WHERE keystr = :key"; diff --git a/airtime_mvc/public/js/airtime/audiopreview/preview_jplayer.js b/airtime_mvc/public/js/airtime/audiopreview/preview_jplayer.js index a1d604f41..56a4afa64 100644 --- a/airtime_mvc/public/js/airtime/audiopreview/preview_jplayer.js +++ b/airtime_mvc/public/js/airtime/audiopreview/preview_jplayer.js @@ -136,7 +136,17 @@ function buildplaylist(p_url, p_playIndex) { artist: data[index]['element_artist'], oga:data[index]['uri'] }; - } + } else if (data[index]['element_m4a'] != undefined) { + media = {title: data[index]['element_title'], + artist: data[index]['element_artist'], + m4a:data[index]['uri'] + }; + } else if (data[index]['element_wav'] != undefined) { + media = {title: data[index]['element_title'], + artist: data[index]['element_artist'], + wav:data[index]['uri'] + }; + } } else if (data[index]['type'] == 1) { media = {title: data[index]['element_title'], artist: data[index]['element_artist'],