From ba356ffc8b542c954ac4610009acef0aa996b224 Mon Sep 17 00:00:00 2001 From: chiarorosa Date: Wed, 1 Nov 2023 14:33:30 -0300 Subject: [PATCH 1/2] Implemented support for audio playback with 'canPlayType' webAPI feature --- src/config.json | 14 ++++-------- src/scripts/init.js | 56 ++++++++++++++++++++++----------------------- 2 files changed, 33 insertions(+), 37 deletions(-) diff --git a/src/config.json b/src/config.json index 71f6b0d1..42d27fc4 100644 --- a/src/config.json +++ b/src/config.json @@ -1,12 +1,8 @@ { - "swiper" : { - "speed" : 300, - "effect" : "slide" + "swiper": { + "speed": 300, + "effect": "slide" }, - "mimetypes": [ - "video/mp4", - "video/ogg", - "video/webm", - "video/quicktime" - ] + "mimetypes": ["video/mp4", "video/ogg", "video/webm", "video/quicktime", "audio/mpeg", "audio/wav"] } +// https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types/Common_types diff --git a/src/scripts/init.js b/src/scripts/init.js index a253cb28..b1ea6914 100644 --- a/src/scripts/init.js +++ b/src/scripts/init.js @@ -2,43 +2,43 @@ if (!OCA.Mediaviewer) { /** * @namespace */ - OCA.Mediaviewer = {}; + OCA.Mediaviewer = {} } -OCA.Mediaviewer.app = require('./setup.js').default; +OCA.Mediaviewer.app = require("./setup.js").default $(document).ready(function () { - const app = OCA.Mediaviewer.app; - const mountPoint = $('
', { + const app = OCA.Mediaviewer.app + const mountPoint = $("
", { id: app.name, - html: '
' - }); + html: "
", + }) if (!OCA.Files) { - return; + return } - + // ---- Register fileactions ------- let actionHandler = (fileName, context) => { - $('body').append(mountPoint); + $("body").append(mountPoint) - OCA.Mediaviewer.files = context.fileList.files; + OCA.Mediaviewer.files = context.fileList.files OC.addScript(app.name, app.name).then(() => { - OC.redirect(OC.joinPaths('#', app.name, fileName)); - }); - }; - - app.config.mimetypes.forEach( (mimetype) => { + OC.redirect(OC.joinPaths("#", app.name, fileName)) + }) + } + app.config.mimetypes.forEach((mimetype) => { // register only browser playable videotypes - let n = mimetype.search("video"); + let n = mimetype.search(/^(audio|video)/) if (n === 0) { - let hasVideo = document.createElement('video').canPlayType && - document.createElement('video').canPlayType(mimetype); - if (!hasVideo) { - return; + let hasMedia = + (document.createElement("video").canPlayType && document.createElement("video").canPlayType(mimetype)) || + (document.createElement("audio").canPlayType && document.createElement("audio").canPlayType(mimetype)) + if (!hasMedia) { + return } } @@ -46,14 +46,14 @@ $(document).ready(function () { mime: mimetype, name: app.name, permissions: OC.PERMISSION_READ, - displayName: t('files_mediaviewer', 'Open in Media Viewer'), - iconClass: 'icon-toggle', - actionHandler - }; + displayName: t("files_mediaviewer", "Open in Media Viewer"), + iconClass: "icon-toggle", + actionHandler, + } if (OCA.Files.fileActions) { - OCA.Files.fileActions.registerAction(ViewMedia); - OCA.Files.fileActions.setDefault(mimetype, app.name); + OCA.Files.fileActions.registerAction(ViewMedia) + OCA.Files.fileActions.setDefault(mimetype, app.name) } - }); -}); + }) +}) From bbf2fa4dbbe2f7d4eca7bd40bda755c00345dcc2 Mon Sep 17 00:00:00 2001 From: chiarorosa Date: Wed, 1 Nov 2023 14:40:21 -0300 Subject: [PATCH 2/2] fix parse --- src/config.json | 1 - 1 file changed, 1 deletion(-) diff --git a/src/config.json b/src/config.json index 42d27fc4..b45a3f20 100644 --- a/src/config.json +++ b/src/config.json @@ -5,4 +5,3 @@ }, "mimetypes": ["video/mp4", "video/ogg", "video/webm", "video/quicktime", "audio/mpeg", "audio/wav"] } -// https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types/Common_types