nextcloud / viewer

🖼 Simple file viewer with slideshow for media
GNU Affero General Public License v3.0
97 stars 55 forks source link

Add audio support #126

Closed jtagcat closed 4 years ago

jtagcat commented 5 years ago

Currently Audio Player and Music support playing audio in nextcloud.

skjnldsv commented 5 years ago

I'm not sure about this one. The ausio player is doing a bit more as it allow to keep browsing while listening to audio, right? (I'm not sure, I never tried it ;) ) And for the music app, well, this is not nextcloud so we don't really support it, but the app have more than just being able to listen to music in files, it have its own ui that list all the music files :thinking:

jtagcat commented 5 years ago

..Was already describing the situation more: As mentioned in #125 Viewer wouldn't replace both of them, since they provide a "gallery view". Though Music is owncloud, I think it has better gallery view (UI is user-friendly) and better playing of audio: Audio Player just displays this while playing: image While Music, while not looking the best has more functions: image

skjnldsv commented 5 years ago

I see yes. @jancborchardt any insight? It could make sense to have a simple audio player as default. cc @rello What do you think? :)

jtagcat commented 5 years ago

For good use, I'll provide a permanent nextcloud instance: https://nxtest.c7.ee admin / developer Please be reasonable.

skjnldsv commented 5 years ago

@vc7ee thanks for your help! Just wait before opening tickts on other repo first. :) So that we can decide here what we want to do. (And keep in mind that the music app in the owncloud org will not add anything to make it compatible with a nextcloud app :wink: )

jtagcat commented 5 years ago

@skjnldsv close them for now?

skjnldsv commented 5 years ago

@vc7ee No, let's wait and see :)

paulijar commented 5 years ago

(And keep in mind that the music app in the owncloud org will not add anything to make it compatible with a nextcloud app 😉 )

Well, I'm the current author of the Music app and I have no ties with ownCloud GmbH, so that's not really a problem. I just develop the app for my own amusement and I'm happy if others can benefit from my work, ownCloud and Nextcloud users alike.

So what would you actually require from the Music app?

skjnldsv commented 5 years ago

@paulijar well, we introduce a universal viewer for nextcloud 16. We're adding support for various mime types. And we were wondering if it would make sense to support audio files by default. The two main questions being:

  1. does it really make sense as other apps already does that
  2. does it make sense to have the apps register themselves to the universal viewer instead
jtagcat commented 5 years ago

We pretty much all agree the current situation on nextcloud preview and related apps are a mess, correct?

It would make sense to change any player/previewer to be native (merge to viewer) and/or any other stuff like album view be an add-on to viewer. This add-on philosophy has 2 main advantages:

I'd find a few problems: How do we convert current apps to this? What could possibly go wrong, when the community divides? a fork? how is that fork handled?

Rello commented 5 years ago

I think a combination makes sence

Files To play a single title from the files app, this should be done with a simple html5 element in the files-app itself. This could be done by simply enhancing the official "Video player" app with additional mimetypes. This would cover the request from @vc7ee to haven an album view because the preview generation does this per file Target Audience: Occasional single song listeners

Dedicated App Then there is still the need for dedicated apps like Music or Audio Player because they are proper music libraries with indexed ID3 Tags, covers, playlists, streams, and and and Target Audience: Dedicated Music listeners

Sharing A stock NC html5

As NC does not provide a constant element (like the menue with apps just in iframes) and reloads completely with every navigation, a dedicated app like the existing ones make sense because you can open them in a separate tab in case you want to use uninterrupted playback...

@vc7ee regarding the current integration of Music or AP: this is very well desired like this. Music player shows the play-bar when playing a title to provide more options. Audio Player just the little icon for simplicity.

jtagcat commented 5 years ago

Quick comment: Since Viewer is coming to replace Video Player, it should be merged here, though the same idea. Yes there should be dedicated apps, what I meant by add-on was a dedicated app, what transforms an app to an add-on would be the back-end: the dedicated app would use viewer's "api" to do the actual playing of a file. The way the Music app does it (the ribbon at bottom) in my opinion is the way to do it. The occasioanl sound listeners should still have ability to change volume, have the timeline. I got in to my ideas and still can't write all down understandably.

skjnldsv commented 5 years ago

Just to simplify the dialog here. The viewer have a standard design and will stay this way. (dimmed bg, centered content, top right actions, top centered title)

The way the Music app does it (the ribbon at bottom) in my opinion is the way to do it. The occasioanl sound listeners should still have ability to change volume, have the timeline.

This will therefore not happen and is out of scope.


Since the music app and the audioplayer app have a full ui with tags and music management, we will not discuss an integration or a change there. @Rello, @paulijar both of you apps are providing a file action that open a quick player without going into your full music management ui, right?

Rello commented 5 years ago

As app-developer I have to say that a stock integration into the Viewer would make our lives much easier. Because registering these file-actions and testing them against new releases/versions every time is a pain anyway.

So Files = NC out of the box => Viewer Dedicated App => on demand from the appstore

@Rello, @paulijar both of you apps are providing a file action that open a quick player without going into your full music management ui, right?

correct. thats only the so called file actions we register and some additional js codes we load there. not really connected to the apps - just delivered with them

skjnldsv commented 5 years ago

Okay, then I will suggest we move into a standardised audio player here. And both of you can now only manage your music library UI without bothering to manage an audioplayer from the nextcloud files list.

What do you think? cc @jancborchardt

paulijar commented 5 years ago

Just to simplify the dialog here. The viewer have a standard design and will stay this way. (dimmed bg, centered content, top right actions, top centered title)

As I see it, this is an inferior UX for music playing as compared to the current "ribbon style" of the Music app, as shown here: https://user-images.githubusercontent.com/8565946/43827500-9f45beb6-9b02-11e8-8884-39ed2f0daa54.png. There is no principal reason, why playing an audio file should block the whole screen and prevent browsing other folders.

That being said, it might still be sufficient for many users and in many cases. And having some way to play audio files on a Nextcloud installation out-of-the-box would be nice. But it should be possible to replace this implementation with another one, if the admin so desires.

In any case, I'm not going to stop developing and supporting the "ribbon player" bundled with the Music app. The app can be run on top of a vast range of Nextcloud and ownCloud versions and most of those will not have any native audio playing capabilities.

skjnldsv commented 5 years ago

In any case, I'm not going to stop developing and supporting the "ribbon player" bundled with the Music app. The app can be run on top of a vast range of Nextcloud and ownCloud versions and most of those will not have any native audio playing capabilities.

It totally make sense :) then I'll ask for input by @jancborchardt, @juliushaertl and @ChristophWurst to know if they think it really make sense to have this in viewer. I'd say the music app is simple enough on the files view :thinking:

jtagcat commented 5 years ago

I could see a possibility for taking the whole screen: when an user wants to have a peek at the file. Though just an X-button solves it.


Clouds handle music files in 3 ways:

  1. Edit, with music and pictures say crop them. (the least common)
  2. Browse
  3. Stream them The classical examples of Spotify, Netflix - are OurClouds replacing Netflix, Plex? Not really. Should the sound/music side follow suit? Probably not as well. There can and should always be a way to have the streaming style as well.

About styling.

jancborchardt commented 5 years ago

For some input regarding the UX, look at e.g. macOS:

So what that means for our products (in my opinion):

Does that make sense?

jtagcat commented 5 years ago

Yes, exactly! Music could go as an official app later. I'll just throw it out there again: (supposed they merge) Music app (and other like apps) should (be able) use Viewer's code for opening/playing files. That eliminates double implementation, testing of the same thing. I'd also note that Gnome has followed suit and pressing space opens a preview of the image.

Rello commented 5 years ago

naja, I think Music and Audio Player are different by design - which is also backed by their user numbers. They differ in UI, formats or backends.

As mentioned e.g. Music has a cleaner UI, where as AP has more flexibility.

but what might actually be interesting would be a more modular setup for the add-ons. Music has e.g. Ampache backend within the app itself. This is the second most request for AP at the moment. I implemented a Sonos-Backend in AP. This would also make more sense as an add-on.

jospoortvliet commented 4 years ago

So the conclusion is that the viewer should also be able to play audio files. Which probably is a quite simple change to its mimetype support as I guess the Video player can play audio too - as audio files are simply video files without image ;-)

The rest about Music vs AP seems rather off-topic here :smile:

Spartachetto commented 4 years ago

I guess that the rest could useful to facilitate a more modular approach between the two apps.

I am an AP user, yet I'd appreciate the possibility to quickly listen some audio files with viewer to have a quick idea of what they are.

In addition, concerning the modularity in development, consider also the metadata issue. AP (i.e. @Rello ) already worked on it. It could maybe be useful to take advantage on this and use the audio metadata info more broadly...

przemsiedl commented 2 years ago

IF someone still want player on the bar obraz like this. then.

  1. Install application Music
  2. Enable showing nextcloud in iframes,
  3. On server go to directory: /var/www/html/apps/music/dist,
  4. Edit js file, and paste script:
function background() {
    $("#backgorundButton").unbind();
    $("#backgorundButton").click(foreground);

    document.getElementById("content").hidden = true;
    document.getElementById("content").id = "content-hidden";
    document.getElementById("header").hidden = true;
    document.getElementById("header").id = "header-hidden";

    if(document.getElementById("ifrm-foregorund") == null)
    {
        var newURL = window.location.protocol + "//" + window.location.host;
        var ifrm = document.createElement("iframe");
        ifrm.setAttribute("src", newURL);
        ifrm.id = "ifrm-foregorund";
        ifrm.style.width = "100%";
        ifrm.style.height = "100%";
        ifrm.style.position="absolute";
        ifrm.style.top="76px";
        ifrm.style.left="0";
        ifrm.style.zIndex = "1";
        document.body.prepend(ifrm);
    } else {
    document.getElementById("ifrm-foregorund").hidden = false;
    }

    var controls = document.getElementById("controls");
    controls.style.position="absolute";
    controls.style.top="0";
    controls.style.left="0";
    controls.style.width="100%"
    controls.style.minwidth="100%"
    document.body.prepend(controls);
}

function foreground() {
    $("#backgorundButton").unbind();
    $("#backgorundButton").click(background);

    document.getElementById("content-hidden").hidden = false;
    document.getElementById("content-hidden").id = "content";
    document.getElementById("header-hidden").hidden = false;
    document.getElementById("header-hidden").id = "header";
    document.getElementById("ifrm-foregorund").hidden = true;
    var controls = document.getElementById("controls");
    document.getElementById("app-content").prepend(controls);
}

$("#backgorundButton").click(background);
  1. go to directory /var/www/html/apps/music/templates/partials
  2. edit: controls.php,
  3. and add selected line, obraz