From 2293fcda01aced78f2dd467aeb8925298e43b650 Mon Sep 17 00:00:00 2001 From: James Date: Thu, 13 Sep 2012 14:22:13 -0400 Subject: [PATCH 1/3] CC-4393: Please ignore Flac items for Playlist Preview and disable to preview it as a single track - fixed --- airtime_mvc/application/controllers/AudiopreviewController.php | 1 + airtime_mvc/public/js/airtime/audiopreview/preview_jplayer.js | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/airtime_mvc/application/controllers/AudiopreviewController.php b/airtime_mvc/application/controllers/AudiopreviewController.php index 6e579045c..69b82939e 100644 --- a/airtime_mvc/application/controllers/AudiopreviewController.php +++ b/airtime_mvc/application/controllers/AudiopreviewController.php @@ -184,6 +184,7 @@ class AudiopreviewController extends Zend_Controller_Action 'element_artist' => isset($track['artist_name'])?$track['artist_name']:"", 'element_id' => isset($track['id'])?$track['id']:"", 'element_position' => isset($track['position'])?$track['position']:"", + 'mime' => isset($track['mime'])?$track['mime']:"" ); /* If the track type is static we know it must be diff --git a/airtime_mvc/public/js/airtime/audiopreview/preview_jplayer.js b/airtime_mvc/public/js/airtime/audiopreview/preview_jplayer.js index 2964dbe63..01c205acd 100644 --- a/airtime_mvc/public/js/airtime/audiopreview/preview_jplayer.js +++ b/airtime_mvc/public/js/airtime/audiopreview/preview_jplayer.js @@ -144,7 +144,7 @@ function buildplaylist(p_url, p_playIndex) { mp3:data[index]['uri'] }; } - if (media) { + if (media && isAudioSupported(data[index]['mime'])) { myPlaylist[index] = media; } // we should create a map according to the new position in the From b04afaec2c4883d26945febcfe467c921e8077d8 Mon Sep 17 00:00:00 2001 From: Martin Konecny Date: Thu, 13 Sep 2012 14:55:17 -0400 Subject: [PATCH 2/3] CC-4393: Please ignore Flac items for Playlist Preview and disable to preview it as a single track -detect flash fallback --- airtime_mvc/public/js/airtime/common/audioplaytest.js | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/airtime_mvc/public/js/airtime/common/audioplaytest.js b/airtime_mvc/public/js/airtime/common/audioplaytest.js index aa9b8917b..76bc5d7c1 100644 --- a/airtime_mvc/public/js/airtime/common/audioplaytest.js +++ b/airtime_mvc/public/js/airtime/common/audioplaytest.js @@ -9,5 +9,10 @@ function isAudioSupported(mime){ bMime = mime; } - return !!bMime && !!audio.canPlayType && audio.canPlayType(bMime) != ""; + //return a true of the browser can play this file natively, or if the + //file is an mp3 and flash is installed (jPlayer will fall back to flash to play mp3s). + //Note that checking the navigator.mimeTypes value does not work for IE7, but the alternative + //is adding a javascript library to do the work for you, which seems like overkill.... + return (!!audio.canPlayType && audio.canPlayType(bMime) != "") || + (mime.indexOf("mp3") != -1 && navigator.mimeTypes ["application/x-shockwave-flash"] != undefined); } From 203378e60a3e05de502bd11246a604ff027ed9fa Mon Sep 17 00:00:00 2001 From: Martin Konecny Date: Thu, 13 Sep 2012 14:56:03 -0400 Subject: [PATCH 3/3] More exception handling --- airtime_mvc/application/models/Preference.php | 3 ++- airtime_mvc/application/models/Schedule.php | 3 +++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/airtime_mvc/application/models/Preference.php b/airtime_mvc/application/models/Preference.php index e227ff403..71a356aa5 100644 --- a/airtime_mvc/application/models/Preference.php +++ b/airtime_mvc/application/models/Preference.php @@ -1095,7 +1095,8 @@ class Application_Model_Preference public static function getCurrentLibraryTableSetting() { $v = self::getValue("library_datatable"); - if( $v === '' ) { + + if ( $v === '' ) { return function ($x) { return $x; }; } else { $ds = unserialize($v); diff --git a/airtime_mvc/application/models/Schedule.php b/airtime_mvc/application/models/Schedule.php index 99d44edd9..330b1b143 100644 --- a/airtime_mvc/application/models/Schedule.php +++ b/airtime_mvc/application/models/Schedule.php @@ -783,7 +783,10 @@ SQL; $media_id = $item['stream_id']; $uri = $item['url']; self::createStreamScheduleEvent($data, $item, $media_id, $uri); + } else { + throw new Exception("Unknown schedule type: ".print_r($item, true)); } + } }