@dominickuo as you say, `MimeMapper.guessTypeFromExtension()` always (correctly or incorrectly) returns 'video/ogg' because it only looks at extension and has no way to distinguish between video and audio files with same extension.

I did some more testing with a few different file types. I use the *UI tests* app in gaia. When I go *openaudio* section, there is a test for *Open with Save option*. That triggers the open activity with the free software song being loaded in the blob. That song itself is of tyle `audio/ogg` however, when I call `MimeMapper.guessTypeFromExtension()` it will return `video/ogg`.

I tried to test the reverse case and try to open a file that is actually a `video/ogg` with the music player open activity, to see what will happen. I modified the UI test example like this:

```
opensavefile2.onclick = function() {
  var a = new MozActivity({
    name: 'open',
    data: {
      type: 'audio/ogg',
      blob: oggvideoblob,
      allowSave: true,
      filename: 'downloads/uitest/testvideosavedasaudio.ogg'
    }
  });
  a.onsuccess = function() {
    console.log('activity returns', JSON.stringify(a.result));
  };
};

// I copied a new ogg video file to test:
var oggvideoURL = '../data/video/testvideo.ogg';

// then load the ogg video file into the oggvideoblob
var localxhr2 = new XMLHttpRequest();
localxhr2.open('GET', oggvideoURL);
localxhr2.responseType = 'blob';
localxhr2.send();
localxhr2.onload = function() {
  oggvideoblob = new Blob([localxhr2.response], { type: 'audio/ogg' });
  open.hidden = false;
  opensavefile2.hidden = false;
};
localxhr2.onerror = function() {
  console.log('Error loading test ogg video as audio file', localxhr2.error.name);
};
```
When try that, I get an error saying "Audio cannot be played: format is unsupported or file is invalid"

I tried the same test with *3gp* video files, and that case nothing was played but I did not get an error.

It seems to me that this bug depends on bug 852864 that you mentioned above. So should we mark it as dependant and wait for a fix to be made for that would support distinguishing audio and video files with the same extension? Or do we need to continue with a workaround here?