diff --git a/src/ContentMessages.ts b/src/ContentMessages.ts index 5ad1c61e941..9a6d4da1006 100644 --- a/src/ContentMessages.ts +++ b/src/ContentMessages.ts @@ -595,12 +595,6 @@ export default class ContentMessages { // if we have a mime type for the file, add it to the message metadata if (file.type) { content.info.mimetype = file.type; - - // clobber quicktime muxed files to be considered MP4 so browsers - // are willing to play them - if (content.info.mimetype == "video/quicktime") { - content.info.mimetype = "video/mp4"; - } } const prom = new Promise((resolve) => { diff --git a/src/components/views/messages/MVideoBody.tsx b/src/components/views/messages/MVideoBody.tsx index 1b6bafd7d93..96516138a09 100644 --- a/src/components/views/messages/MVideoBody.tsx +++ b/src/components/views/messages/MVideoBody.tsx @@ -190,12 +190,21 @@ export default class MVideoBody extends React.PureComponent } else { logger.log("NOT preloading video"); const content = this.props.mxEvent.getContent(); + + let mimetype = content?.info?.mimetype; + + // clobber quicktime muxed files to be considered MP4 so browsers + // are willing to play them + if (mimetype == "video/quicktime") { + mimetype = "video/mp4"; + } + this.setState({ // For Chrome and Electron, we need to set some non-empty `src` to // enable the play button. Firefox does not seem to care either // way, so it's fine to do for all browsers. - decryptedUrl: `data:${content?.info?.mimetype},`, - decryptedThumbnailUrl: thumbnailUrl || `data:${content?.info?.mimetype},`, + decryptedUrl: `data:${mimetype},`, + decryptedThumbnailUrl: thumbnailUrl || `data:${mimetype},`, decryptedBlob: null, }); }