Patio Surface Mount Speakers | Outdoor Speaker Depot (2024)

Filters

  • Support
  • Sign In
  • Cart0

Secure Checkout

🔊 LIMITED TIME DEALS!

Patio Surface Mount Speakers | Outdoor Speaker Depot (46)

Upgrade your Outdoor Entertainment

Enjoy versatile sound solutions with our array of passive and Bluetooth patio surface mount speakers at Outdoor Speaker Depot. Our passive speakers deliver exceptional audio quality when connected to a separate amplifier, offering you control over your audio setup. For wireless convenience, our Bluetooth speakers provide seamless streaming from your devices, giving you the freedom to control your music from anywhere in your outdoor space. Whether you're looking to create a sophisticated outdoor theater or simply want to enjoy music on your patio, our range of speakers has you covered.

$199.99Compare at: $299.99You Save: $1008" 2-Way Premium Outdoor Patio Speaker Single, w/ Optional 70V Tap, IP67 Rated White/Black P83 MK2
$299Compare at: $448.99You Save: $149.996.5" Bluetooth® 5.0 Outdoor Patio Speaker Pair 150W, IP54 Rated, Black or White BTP650
$179.99Compare at: $269.99You Save: $905.25" Bluetooth® 5.0 Outdoor Patio Speaker Pair 100W, IP54 Rated, Black or White BTP525
$299.99Compare at: $449.99You Save: $1508" 2-Way High Definition Outdoor Patio Speaker Pair 200W, IP54 Rated, Black or White AP850
$249Compare at: $373.99You Save: $124.998" 2-Way High Definition Outdoor Patio Speaker Pair 180W, IP54 Rated, Black or White AP840
$194.99Compare at: $291.99You Save: $976.5" 2-Way Outdoor Patio Speaker Pair w/ Optional 70V Tap, IP54 Rated, White or Black AP650
$106.99Compare at: $159.99You Save: $536.5" 3-Way Outdoor Patio Speaker Pair w/ Optional 70V Tap, IP54 Rated, White or Black AP640
$74.99Compare at: $111.99You Save: $375.25" 2-Way Outdoor Patio Speaker Pair w/ Optional 70V Tap, IP54 Rated, White or Black AP520
$95Compare at: $142.99You Save: $47.995.25" 2-Way Outdoor Patio Speaker Pair w/ Optional 70V Tap, IP54 Rated, White or Black AP525
$47.99Compare at: $71.99You Save: $244” 3-Way Compact Outdoor Patio Speaker Pair 80W, IP54 Rated, White or Black AP450
$79.99Compare at: $119.99You Save: $404" Outdoor Patio Speaker Pair, 60W RMS and 70V, IPX6, Full Motion Bracket, White/Black

© 2003-2024 OSD Audio. All Rights Reserved.

';var loadinghtml_myFacetResults = '

Patio Surface Mount Speakers | Outdoor Speaker Depot (58)

';var loadinghtml_myFacetRefinery = '';/* GD Set the area to scroll to the results. GDCP */window.GDFacetsScrollToResults = function () {setTimeout(function () {if(window.innerWidth >= 960) {/* Desktop. Keep in mind sticky header */$("html, body").animate({ scrollTop: $("main").offset().top }, 600);} else {/* Mobile and no sticky header */$("html, body").animate({ scrollTop: $(".x-collapsing-breadcrumbs").offset().top }, 600);}}, 150);}/* GD We need to now trigger all the theme scripts that do lazy loading and other crazy fun stuff. GDCP */window.GDFacetsAfterDataLoaded = function (what_to_do) {if(what_to_do=='full_from_back_button') {//elementsUI.site();elementsUI.pages.common();//themeFunctionality.init();themeFunctionality.sharedFunctions.observeDeferred();//themeFunctionality.jsCTGY();try {window.init_custom_selects('ajax_reload');}catch(err) {/* console.log("Check init_custom_selects."); */}} else {elementsUI.pages.common();themeFunctionality.sharedFunctions.observeDeferred();themeFunctionality.jsCTGY();window.init_custom_selects('ajax_reload');}gdRangeFinderFixes();}/* GD GDFacetsReloadFromPrev reloads the facet areas using previous data saved in the #js-GDfacetMemory form */window.GDFacetsReloadFromPrev = function () {/* Get saved JSON data from the 3 form inputs in the #js-GDfacetMemory form */var remember_myFacetSort = $("#js-remember_myFacetSort").val();var remember_myFacetTree = $("#js-remember_myFacetTree").val();var remember_myFacetResults = $("#js-remember_myFacetResults").val();var remember_myFacetRefinery = $("#js-remember_myFacetRefinery").val();var updated_at_least_one = false;/* Use saved data to populate the multiple facet areas. */if(remember_myFacetSort != '') {$("#myFacetSort").html(loadinghtml_myFacetSort);$("#myFacetSort").html(remember_myFacetSort);updated_at_least_one = true;} else {/* console.log("Nothing in remember_myFacetSort to reload."); */}if(remember_myFacetTree != '') {$("#myFacetTree").html(loadinghtml_myFacetTree);$("#myFacetTree").html(remember_myFacetTree);updated_at_least_one = true;} else {/* console.log("Nothing in remember_myFacetTree to reload."); */}if(remember_myFacetResults != '') {$("#myFacetResults").html(loadinghtml_myFacetResults);$("#myFacetResults").html(remember_myFacetResults);updated_at_least_one = true;} else {/* console.log("Nothing in remember_myFacetResults to reload."); */} if(remember_myFacetRefinery != '') {$("#myFacetRefinery").html(loadinghtml_myFacetRefinery);$("#myFacetRefinery").html(remember_myFacetRefinery);updated_at_least_one = true;} else {/* console.log("Nothing in remember_myFacetRefinery to reload."); */} if(updated_at_least_one) {/* GD Now Reinit any Theme JS functions. */GDFacetsAfterDataLoaded('full_from_back_button');/* GD Now scroll the user to the new content. */GDFacetsScrollToResults();}/* console.log("GDFacetsReloadFromPrev() Finished."); */}/* GD Override Function MMProdList_UpdateQuery_SubmitParameters from clientside.mvc?Filename=runtime_ui.js */window.MMProdList_UpdateQuery_SubmitParameters = function ( form, params, gdversion ){/* console.log("GD Override OK: MMProdList_UpdateQuery_SubmitParameters"); */var i, j, i_len, j_len, elements, params_output_array;/* We don't want this mmprodlist_updatequery_submitparameters_submitted var to kill the function because we're reusing it now. GDCP *//*if ( window.mmprodlist_updatequery_submitparameters_submitted ){return;}window.mmprodlist_updatequery_submitparameters_submitted = true;*/params_output_array = new Array();params.sort( function( a, b ) { return sortAlphaNumeric( a.name, b.name, true ); } );for ( i = 0, i_len = params.length; i < i_len; i++ ){for ( j = 0, j_len = params[ i ].values.length; j < j_len; j++ ){if ( params[ i ].values[ j ].length ){params_output_array.push( encodeURIComponent( params[ i ].name ) + '=' + encodeURIComponent( params[ i ].values[ j ] ) );}}}/* GD: Append the JSON View to the params array. Force the view to be JSON output. GDCP */params_output_array.push( 'view=json' );params_output_array.push( 'killcache2=' + new Date().getTime());/* We're not setting these listeners anymore. They cause a "hickup" with the overrides we do. GDCP */ /*if ( window.mmprodlist_updatequery_submitparameters_timeout ){clearTimeout( window.mmprodlist_updatequery_submitparameters_timeout );delete window.mmprodlist_updatequery_submitparameters_timeout;}if ( window.mmprodlist_updatequery_submitparameters_timeout_event_attached ){elements = form.getElementsByTagName( '*' );for ( i = 0, i_len = elements.length; i < i_len; i++ ){RemoveEvent( elements[ i ], 'mousedown', window.mmprodlist_updatequery_submitparameters_timeout_event_function );RemoveEvent( elements[ i ], 'mousemove', window.mmprodlist_updatequery_submitparameters_timeout_event_function );RemoveEvent( elements[ i ], 'mouseup', window.mmprodlist_updatequery_submitparameters_timeout_event_function );}}*//* GD NOT SENDING TO NEW WINDOW!window.location.href = [ window.location.protocol, '//', window.location.host, window.location.pathname ].join( '' ) + ( params_output_array.length ? ( '?' + params_output_array.join( '&' ) ) : '' );*//* GD: Set the URL of the page to get the JSON data. */var GDfacets_DataURL = [ window.location.protocol, '//', window.location.host, window.location.pathname ].join( '' ) + ( params_output_array.length ? ( '?' + params_output_array.join( '&' ) ) : '' );/* console.log("GDfacets_DataURL: "+GDfacets_DataURL); *//* GD Populate the areas with something while we load new data. */$("#myFacetResults").html(loadinghtml_myFacetResults);/*$("#myFacetSort").html(loadinghtml_myFacetSort);*//*$("#myFacetTree").html(loadinghtml_myFacetTree);*//*$("#myFacetRefinery").html(loadinghtml_myFacetRefinery);*//* GD Ajax Post to the page so we can get the JSON data back and load the various sections all at once with new data. */$.post(GDfacets_DataURL,function(json_data) { })/*for success*/.done(function(json_data) {/* GD Now scroll the user to the new content. */if(json_data.products_on_page_count > 0) {/* GD Load the various sections all at once with new HTML. */$("#myFacetSort").html(json_data.new_myFacetSort);$("#myFacetTree").html(json_data.new_myFacetTree);$("#myFacetResults").html(json_data.new_myFacetResults);$("#myFacetRefinery").html(json_data.new_myFacetRefinery);/* GD Save the new HTML to the remember form fields. */$("#js-remember_myFacetSort").val(json_data.new_myFacetSort);$("#js-remember_myFacetTree").val(json_data.new_myFacetTree);$("#js-remember_myFacetResults").val(json_data.new_myFacetResults);$("#js-remember_myFacetRefinery").val(json_data.new_myFacetRefinery);$("#js-remember_products_found").val(json_data.products_on_page_count);/* GD Now Reinit any Theme JS functions. */GDFacetsAfterDataLoaded();/* Scroll to results */GDFacetsScrollToResults();} else {/* There are no valid results. */$("#myFacetResults").html('

Sorry, no results match these filters.

Undo the last filter or RESET.

');}})/*for failed*/.fail(function(json_data) {/* console.log( "error reloading avail facets to "+doAjaxFacetURL ); */})/*for completion, whether success or error*/.always(function(json_data) {}); }/* GD Override Function MMProdList_UpdateQuery_SubmitParameters_Timeout from clientside.mvc?Filename=runtime_ui.js*/window.MMProdList_UpdateQuery_SubmitParameters_Timeout = function ( form, submit_delay, gdversion ){/* console.log("GD Override OK: MMProdList_UpdateQuery_SubmitParameters_Timeout"); */var i, i_len, elements;submit_delay = stoi_def_nonneg( submit_delay, 0 )if ( window.mmprodlist_updatequery_submitparameters_timeout ){clearTimeout( window.mmprodlist_updatequery_submitparameters_timeout );delete window.mmprodlist_updatequery_submitparameters_timeout;}if ( submit_delay === 0 ){return MMProdList_UpdateQuery_SubmitParameters_LowLevel( form );}window.mmprodlist_updatequery_submitparameters_timeout = setTimeout( function() { MMProdList_UpdateQuery_SubmitParameters_LowLevel( form ); }, submit_delay );if ( !window.mmprodlist_updatequery_submitparameters_timeout_event_attached ){window.mmprodlist_updatequery_submitparameters_timeout_event_attached = true;window.mmprodlist_updatequery_submitparameters_timeout_event_function = function( event ) { MMProdList_UpdateQuery_SubmitParameters_Timeout( form, submit_delay ); };/* We're not setting these listeners anymore. They cause a "hickup" with the overrides we do. GDCP *//*elements = form.getElementsByTagName( '*' );for ( i = 0, i_len = elements.length; i < i_len; i++ ){AddEvent( elements[ i ], 'mousedown', window.mmprodlist_updatequery_submitparameters_timeout_event_function );AddEvent( elements[ i ], 'mousemove', window.mmprodlist_updatequery_submitparameters_timeout_event_function );AddEvent( elements[ i ], 'mouseup', window.mmprodlist_updatequery_submitparameters_timeout_event_function );}*/}}/* GD Override Function MMProdList_UpdateQuery_Notify_Updating from clientside.mvc?Filename=runtime_ui.js*/ window.MMProdList_UpdateQuery_Notify_Updating = function ( form, gdversion ){/* console.log("GD Override OK: MMProdList_UpdateQuery_Notify_Updating"); */var i, i_len;/* We're not disabling the facet fields anymore. We can if needed. It's not required. GDCP *//*for ( i = 0, i_len = form.elements.length; i < i_len; i++ ){form.elements[ i ].setAttribute( 'disabled', 'disabled' );}*/}});}
Patio Surface Mount Speakers | Outdoor Speaker Depot (2024)

References

Top Articles
Latest Posts
Article information

Author: Reed Wilderman

Last Updated:

Views: 6029

Rating: 4.1 / 5 (72 voted)

Reviews: 95% of readers found this page helpful

Author information

Name: Reed Wilderman

Birthday: 1992-06-14

Address: 998 Estell Village, Lake Oscarberg, SD 48713-6877

Phone: +21813267449721

Job: Technology Engineer

Hobby: Swimming, Do it yourself, Beekeeping, Lapidary, Cosplaying, Hiking, Graffiti

Introduction: My name is Reed Wilderman, I am a faithful, bright, lucky, adventurous, lively, rich, vast person who loves writing and wants to share my knowledge and understanding with you.