How GetRight Stops Flash from Playing Dynamically Loaded MP3s
Flash developers who rely on the Sound.loadSound() method to pull MP3s from a server have often run into a frustrating obstacle: the file never reaches the Flash Player, and the browser’s download manager steps in instead. If your site visitors have the GetRight download manager installed, every attempt to load a sound file via code is intercepted, the user is prompted to save the file locally, and the embedded audio fails to play. This behavior is not an obscure bug; it is a built‑in feature of GetRight that treats any MP3 request as a potential download, regardless of whether it originates from an embedded object or a script call. The result is a broken listening experience for anyone who has GetRight, a problem that can affect user engagement and conversion rates on sites that deliver audio content on demand.
At first glance, the culprit appears to be a simple file‑type mismatch. GetRight hooks into the browser’s MIME type handling for MP3s, intercepting any request that uses the audio/mpeg type or the .mp3 file extension. When the request reaches the browser, the GetRight plugin overrides the default download‑prompt logic and presents a save‑as dialog. Flash, however, expects a stream that it can decode on the fly. Because the plugin has already grabbed the request, Flash receives nothing, and the Sound.loadSound() call times out. Even if the user chooses “Save” or “Cancel,” Flash still cannot retrieve the file, leaving the sound component empty.
Because GetRight’s hook is applied at the browser level, no amount of Flash‑side code can bypass it. A script that attempts to trick the browser by renaming the file to .mp3x or by changing the URL will be ignored, as GetRight only checks the actual MIME type returned by the server. If the server still reports audio/mpeg, the plugin will fire. Renaming the file or changing the extension does not alter the underlying content type, and the download prompt remains inevitable. Therefore, the most reliable fix is to adjust the server configuration so that the requested file no longer carries the audio/mpeg MIME type or the .mp3 extension, or to use an alternative file format that GetRight does not target, such as .aac or .wav. However, these workarounds can be disruptive, requiring changes to how the content is served and how it is referenced in the Flash application.
There are a handful of practical steps a developer can take to mitigate the problem without rewriting large portions of the code base. First, host the MP3s on a dedicated domain that does not have GetRight installed, or serve the files from a sub‑path that the user’s download manager does not monitor. Next, set the Content-Disposition header to inline and the Content-Type to audio/mpeg only when the request comes from a non‑download context. Many modern web servers allow conditional headers based on the request URI or a custom query parameter; using something like ?stream=true can signal that the file should be streamed rather than downloaded.
Another effective tactic is to embed the audio directly into the SWF file as a binary asset. By packaging the MP3s with the application, you eliminate the network call that triggers GetRight. This approach works best when the sound library is small and static. For dynamic or user‑generated content, consider compressing the audio on the server into a format that GetRight does not flag, such as Ogg Vorbis, and then convert it client‑side to an MP3 or use a cross‑browser audio library that supports multiple codecs.
It’s also worth noting that the issue is not limited to GetRight alone. Other download managers, such as DownThemAll or Internet Download Manager, implement similar hooks for common media MIME types. Therefore, a comprehensive solution involves ensuring that all browsers, regardless of installed extensions, receive the audio stream in a format that can be decoded by Flash. In practice, this often means returning the audio with the application/octet-stream type and then instructing Flash to treat it as a stream, though this can introduce its own compatibility challenges.
Beyond technical workarounds, communication with users can reduce confusion. If your site is known to rely heavily on Flash for audio playback, adding a brief notice that “Flash may not play sound automatically if you have a download manager installed” can set expectations. Providing a fallback link to download the audio separately, or offering a non‑Flash audio player using the HTML5 <audio> tag, offers a graceful degradation path for visitors with restrictive download plugins.
In sum, the GetRight download manager’s interception of MP3 requests is a deliberate design choice that clashes with the dynamic loading pattern used by Flash’s Sound.loadSound(). To preserve a seamless audio experience, developers should adjust server MIME types, host files on separate domains, embed assets where feasible, or switch to alternative codecs. By addressing both the server configuration and the user’s environment, you can keep the soundtrack playing while still respecting the user’s choice of download manager.
Guy Watson - better known as FlashGuru - has spent years helping the Flash community navigate exactly these kinds of quirks. His tutorials, open‑source code, and forums have guided countless developers through the intricacies of the platform. He now runs FlashGuru LTD, a company that crafts Flash games and applications for high‑profile clients such as Comic Relief, Egg, and Channel 4. Watson’s experience underscores the importance of staying ahead of compatibility issues in an ecosystem that is constantly evolving.





No comments yet. Be the first to comment!