You are here: Home » Topic » A standalone Java client: FireflyClientpage 10

A standalone Java client: FireflyClient

This topic contains 186 replies, has 37 voices, and was last updated by  Anonymous 9 years, 5 months ago.

Viewing 15 posts - 136 through 150 (of 187 total)
  • Author
    Posts
  • #15646

    Anonymous

    @rregent wrote:

    Just tried the applet version but can’t get it to work. When the page loads, the status bar reads ‘applet noinited’ and then ‘Loading Java Applet Failed…’

    Java Applet works just fine here… but any suggestion on how to avoid given out Admin password?

    Server: svn-1696 on LinkStation Live V2

    Client:
    Windows XPSP3
    Firefox 3.0.5
    JRE 6 Update 11

    #15647

    Anonymous

    Hi every one,
    I have just released a new version of FireflyClient : 0.9b
    See: https://sourceforge.net/project/showfiles.php?group_id=212642

    This is mainly a maintenance release based on 0.8b that mainly corrects the applet deployments problems. It has a few minor add-ons too.

    Main features are :
    – Enhanced applet deployments capabilities
    – Genre/artist separator to manage multiple genre/artist in single tag

    Here is the detailed changelog below.


    Changelog:
    Version 0.9 b
    - Enhanced applet configuration
    - read more in fireflyclient.html file when fireflyclient-applet(.zip or .tar.gz) has been uncompressed
    - Added the possibility to set a separator for genre and artist tag
    - Ex: if genre tag contains "Classical; [C]Classical; Orchestral;Symphony" and that
    ';' character has been set as genre separator in preferences dialog, 4 genres
    are extracted for this song (the song matching the four of them:
    - Classical
    - [C]Classical
    - Orchestral
    - Symphony
    Same functionnality for artist tag.
    When changing separators, application must be restarted.
    - Enhanced keylistener on genre, artist and album lists
    - When genre, artist or album list has the focus, you can type the first letters to go to the first matching item.
    - Weakly crypted passwords (library and lastfm) in configuration file (needs library saving)

    As usual, any support, any remark, bug report, feature request is welcome…

    The genre/artist separator feature answer the Statto2 post : viewtopic.php?f=9&t=7198&start=120#p23807

    If you read me, Pacbarnabe, I tried to add an hidden option to customize read buffer size, but I’m not sure that it will do the trick. Nevermind, you can try it. You just have to edit the XML configuration file (config.xml) and change/add the following property “4”. The default size is 4 (in kilobytes). You might try to increase this value. Do not put too high values as I noticed that the app was consumming a lot of CPU in that case. Try and find the value that might suit you if it makes any difference!

    I’ll make a dedicated post for applet configuration.

    — caribou

    #15648

    Anonymous

    About applet configuration…

    Hi everybody,

    Here are details about the applet version of Firefly Client. First of all, to use applet version, you must use the version 0.9b of the client – (see previous post).

    First, there are two main files :
    – FireflyClient.jar which contains the applet binary
    – fireflyclient.html which tells the browser to launch the applet with the following html code :




    At applet launch, the Java plugin downloads the jar file and accesses it several times while applet is running. To avoid requesting the remote jar each time, the java plugin tries to put it in a cache. If the plugin is unable to cache it, the jar file will be downloaded each it is needed (i.e. several times per session) which is unusable.

    How does java plugin caching mechanism work ?

    For the java plugin being able to cache the jar file, it needs to receive the following HTTP response headers:
    – Content-Length (the size of the jar in bytes)
    – Last-modified (the last modified date of the remote file)
    The plugin then puts the jar in cache, and works with the cached version until size has changed (Content-length) or modification date (Last-modified)
    Normally, every web server sends those two headers when serving any file as soon as these informations are available (which is the case for any static file).
    The problem is that the FireflyMediaServer (FMS) built-in web server doesn’t sends those headers for the files in the admin-root directory. This means that the java plugin is unable to cache the file which makes the applet unusable !

    How to workaround these issues to have the applet working ?

    First, the simplest way is to use the Java Runtime Environment (JRE) 1.6u10 (or more recent). Indeed, from this version, the java plugin interprets the ‘jnlp_href’ param name in the applet tag (see above). This parameter specify the url of a ‘jnlp’ file which is a more advanced descriptor (last generation) of the java applet. With the detailed informations contained in this description, the java plugin is able to cache the resources it needs (i.e. the jar file) without the usually needed HTTP headers and everything should work fine ! Keror0 has just said it worked for him (he runs the JRE 1.6 update 11).

    The second way is a bit more tricky to get the applet working, but it should work for any version of java (> 1.4) like the firefly client non-applet version. The idea is to host the applet files on another webserver which should add the requested headers (Content-Length and Last-Modified) for the old versions of java plugin to cache the needed ressources. When running in that configuration you must add the FMS host and port as parameters of the applet tag :

    <applet id="fireflyclient" style="width:100%; height:100%; position:absolute; top:0; left:0;"
    code="net.firefly.client.gui.applet.FireflyClientApplet">







    Any classical webserver work for this (i.e. apache, lighttpd,….)

    To summarize, instead of extracting the fireflyclient-applet[tar.gz|zip] file in the admin-root directory of FMS, extract it in the root of your dedicated webserver. Then edit the fireflyclient.html file to make the needed changes (comment out the first version of applet tag and uncomment the second one after having specified your FMS host and port in the applet tag params). The applet is now available at : http://your_webserver:your_webserver_port/applet/fireflyclient.html

    What to do when replacing applet by a new version ?

    You must purge the Java Plugin cache. To do that, open the Java Control Panel, click on the ‘Display’ button under the ‘Temporary Internet Files’ section and remove Firefly Client related file (especially FireflyClient.jar)

    Authentication problematics ?
    If you install the applet in the admin-root directory of FMS and the FMS admin pages are password-protected, you’ll have an authentication popup for accessing the page fireflyclient.html which might be annoying. The second kind of installation (on another webserver) remove this problem (Note that your library stays password protected (if configured) )

    Hope this long post will help those who are interrested by the applet version of fireflyclient !

    — caribou

    #15649

    Anonymous

    Hi,

    Fireflyclient.jar is just what i’m looking for, and i can use it on my laptop … But finally, i want to use it on my Htc Touch HD (windows mobile 6.1 smartphone) … I can install it, using the built-in java, but when trying to run it, it complains about several things … (at first i couln’t install either, but after adding the following lines in the Manifest.mf file, i can go further) :
    MIDlet-Name: FireflyClient
    MIDlet-Version: 1.5
    MIDlet-Vendor: Vendor
    MIDlet-1: Fireflyclient,,net.firefly.client.gui.swing.FireflyClient

    After installing it, it says “MIDLet was successfully installed! Do you want to launch the MIDlet ?”
    Then it gives the following error “The MIDlet could not be instantiated : java.lang.ClassCastException”

    Can someone help me getting this to work on a windows mobile os ?

    #15650

    Anonymous

    @caribou wrote:

    About applet configuration…
    The second way is a bit more tricky… host the applet files on another webserver … Any classical webserver work for this (i.e. apache, lighttpd,….) — caribou

    Hi Caribou,

    Playing around with the applet version a bit today… I have successfully migrated the server side applet to an apache server in attempt to bypass the authentication of the FMS. Modification of fireflyclient.html as follow:

     <applet id="fireflyclient" style="width:100%; height:100%; position:absolute; top:0; left:0;"
    code="net.firefly.client.gui.applet.FireflyClientApplet">








    However, applet version of the client player only shown up in the browser correctly the VERY FIRST time. When attempt to reload and close Firefox and reload the applet it shown up as follow, also tried with IE 6 with the same result:

    #15651

    Anonymous

    @keror0 wrote:

    However, applet version of the client player only shown up in the browser correctly the VERY FIRST time. When attempt to reload and close Firefox and reload the applet it shown up as follow, also tried with IE 6 with the same result.

    Hi keror0,

    Indeed, it is a bug inherited from the normal client behaviour which reposition the window at startup. It is now corrected for the applet version and it should no more happen. I have just replaced the files on sourceforget.net. It is still the 0.9b version but date timestamp has changed : fireflyclient-applet-v0.9b-20081231.zip
    In fact, you’ll just have to replace the FireflyClient.jar file. Do not forget to purge the java plugin cache (To do that, open the Java Control Panel, click on the ‘Display’ button under the ‘Temporary Internet Files’ section and remove Firefly Client related file, especially FireflyClient.jar)

    Hope this is the last serious bug 😉

    — caribou

    #15652

    Anonymous

    Alright! It works perfectly fine now… seems no need to purge the java plugin cache, they are all updated to the latest…

    #15653

    Anonymous

    Only one issue with the applet version… sound stuttering while loading web pages with the same browser or even during loading of other applications, checked java.exe loading is not high. No such problem with the standalone version which seems using javaw.exe.

    #15654

    Anonymous

    Someone to help porting this wonderfull fireflyclient to windows mobile ? If this works, it will be the best application ever … Who doesn’t want to have a portable mediaplayer connected to 1000+ of songs, and playing just what you want …

    Caribou, any idea ?

    #15655

    blamm
    Participant

    This is excellent. Thankyou. Has anyone got the applet working in Google Chrome? It doesn’t display anything.

    #15656

    mpuckett
    Participant

    What a brilliant piece of code! Many thanks for an excellent app.

    I have a need for a front end that does playlist management on the server and this looks just great for that. Most of my library is in AAC and gets played on a Roku for now but I am curious if there is there an aac codec available as a plugin somewhere? At the moment the app hung when I tried playing one of my aac tracks.

    A couple of questions regarding playlist management… I rehosted all my iTunes playlists by moving my iTunes Music Library.xml file to the server which went smoothly. Is there any way to make these editable? Now that they have been migrated I would like to manipulate them as a regular playlist but they are all read only. Can this be enabled by simply changing the playlist-type from type 3 to type 0 or is it more involved than that?

    Is it possible yet to create a smart playlist from FireFlyClient?

    #15657

    Anonymous

    The triple-panel view (genre, artist, album) has almost become the de-facto industry standard for media software but Firefly (and the Roku Soundbridge, for example) also permit browsing by composer.

    Would it be possible to show a 4th panel – composer – in this otherwise excellent Client software?

    A 5th panel option for ‘year’ would also be useful. MediaMonkey has a neat way of handling ‘year’ and shows a tree structure as follows:

    1940s
    1950s
    1960s
    1970s
    1980s
    etc

    Each decade can then be opened to reveal the years present in the database. For example, opening up 1950s might reveal a sub-list like this

    1952
    1956
    1957
    1959

    Anyone else think that ‘composer’ and ‘year’ browsing would be useful?

    #15658

    Anonymous

    Thanks caribou, the applet in the latest release .09b works great. I have one minor request. Would it be possible for Artists whose names are preceded by “The” to be sorted by the latter part of the name? The SoundBridge handles this well. For example, ‘The Beatles’ becomes ‘Beatles, The’ . Thanks,

    –Bob

    #15659

    Anonymous

    Yes, good suggestion rregent

    Actually, Firefly and the Soundbridge is even neater than you suggest. The Beatles is listed amongst the Bs but the group name still appears as ‘The Beatles’. Similarly, ‘The Beach Boys’ is filed with the Bs, ‘The Carpenters’ with the Cs, etc.

    I think it’s important that this methodology applies only to artists and not, for example, albums. Logically, I think it makes sense for ‘A Night At The Opera’ to be filed with the As rather than the Ns, etc.

    #15660

    Anonymous

    @Statto2 wrote:

    Yes, good suggestion rregent

    Actually, Firefly and the Soundbridge is even neater than you suggest. The Beatles is listed amongst the Bs but the group name still appears as ‘The Beatles’. Similarly, ‘The Beach Boys’ is filed with the Bs, ‘The Carpenters’ with the Cs, etc.

    I think it’s important that this methodology applies only to artists and not, for example, albums. Logically, I think it makes sense for ‘A Night At The Opera’ to be filed with the As rather than the Ns, etc.

    Ah, you’re right. I forgot that the Roku displays ‘The’ in front of the name but sorts as if it did not. And yes, I think you would only want this treatment for artists – not songs or albums.

Viewing 15 posts - 136 through 150 (of 187 total)

The forum ‘Add-on Software’ is closed to new topics and replies.