|
186 | 186 | // Automatically begin the 30-second suspend process |
187 | 187 | self._autoSuspend(); |
188 | 188 |
|
| 189 | + // Check if audio is available. |
| 190 | + if (!self.usingWebAudio) { |
| 191 | + // No audio is available on this system if noAudio is set to true. |
| 192 | + if (typeof Audio !== 'undefined') { |
| 193 | + try { |
| 194 | + var test = new Audio(); |
| 195 | + |
| 196 | + // Check if the canplaythrough event is available. |
| 197 | + if (typeof test.oncanplaythrough === 'undefined') { |
| 198 | + self._canPlayEvent = 'canplay'; |
| 199 | + } |
| 200 | + } catch(e) { |
| 201 | + self.noAudio = true; |
| 202 | + } |
| 203 | + } else { |
| 204 | + self.noAudio = true; |
| 205 | + } |
| 206 | + } |
| 207 | + |
| 208 | + // Test to make sure audio isn't disabled in Internet Explorer. |
| 209 | + try { |
| 210 | + var test = new Audio(); |
| 211 | + if (test.muted) { |
| 212 | + self.noAudio = true; |
| 213 | + } |
| 214 | + } catch (e) {} |
| 215 | + |
189 | 216 | // Check for supported codecs. |
190 | 217 | if (!self.noAudio) { |
191 | 218 | self._setupCodecs(); |
|
2094 | 2121 | * Setup the audio context when available, or switch to HTML5 Audio mode. |
2095 | 2122 | */ |
2096 | 2123 | var setupAudioContext = function() { |
2097 | | - Howler.noAudio = false; |
2098 | | - |
2099 | 2124 | // Check if we are using Web Audio and setup the AudioContext if we are. |
2100 | 2125 | try { |
2101 | 2126 | if (typeof AudioContext !== 'undefined') { |
|
2109 | 2134 | Howler.usingWebAudio = false; |
2110 | 2135 | } |
2111 | 2136 |
|
2112 | | - if (!Howler.usingWebAudio) { |
2113 | | - // No audio is available on this system if noAudio is set to true. |
2114 | | - if (typeof Audio !== 'undefined') { |
2115 | | - try { |
2116 | | - var test = new Audio(); |
2117 | | - |
2118 | | - // Check if the canplaythrough event is available. |
2119 | | - if (typeof test.oncanplaythrough === 'undefined') { |
2120 | | - Howler._canPlayEvent = 'canplay'; |
2121 | | - } |
2122 | | - } catch(e) { |
2123 | | - Howler.noAudio = true; |
2124 | | - } |
2125 | | - } else { |
2126 | | - Howler.noAudio = true; |
2127 | | - } |
2128 | | - } |
2129 | | - |
2130 | | - // Test to make sure audio isn't disabled in Internet Explorer |
2131 | | - try { |
2132 | | - var test = new Audio(); |
2133 | | - if (test.muted) { |
2134 | | - Howler.noAudio = true; |
2135 | | - } |
2136 | | - } catch (e) {} |
2137 | | - |
2138 | 2137 | // Check if a webview is being used on iOS8 or earlier (rather than the browser). |
2139 | 2138 | // If it is, disable Web Audio as it causes crashing. |
2140 | 2139 | var iOS = (/iP(hone|od|ad)/.test(Howler._navigator && Howler._navigator.platform)); |
|
0 commit comments