My first app: Audio Player

Hopefully they’re here. Two albums, one song each. This is from Chrome on a Windows 7 machine running at 1920x1080.

http://imgur.com/a/MkpWb

As discussed; probably some caching issue and not coming up again

thank you @groovy and @anon99252149 for the big support on testing my first version and providing all this patient feedback!

5 issues were solved:

v.1.0.1 will be published soon

2 Likes

It would be great to have the ability to not only select by genre, but also by artist.

I fixed issues with the share and the file-actions.
the player now has a working One-Click-Play from the files app to directly play a song without indexing (alternative via Options-Menu)

When sharing a soundfile, it can be played within the share-screen

will push 1.0.2 the next days.

@groovy I need to think about how to integrate this nicely. the doing is no issue - but long lists of genres & artists would be quite ugly. i will think about it…

I agree. How about some sort of vertical navigation like this:

@Rello
thanks for this great app :slight_smile: i haved tested it know also in NC beta 10 - works fine :wink:
looking forward for more features maybe - you have done a great job :wink:

Thank you :wink:

Please leave your + vote in the appstore to get it promoted :wink:

Features i am looking into:

  • Artists (@groovy)
  • timeout/timer (i need a sleep timer for the kids)
1 Like

Hi Rello, I voted for your app.
Do you think it’s possible to create a stream only link?
Maybe something like dropbox is able to do. you can create a different link for stream only.

[edit]
by looking into the code of the share page, i found this link
https://www.yoursite.com/index.php/apps/audioplayer/getpublicaudiostreamfilename?token=***************

hey,
I will push the 1.0.2 today or tomorrow. then it will work. there was a bug in the code.
then you can share your mp3 from the files-app via link as any other file.
when opening the link it will offer the player within the share-screen:
https://help.nextcloud.com/uploads/default/original/1X/025793fb53ad758f8306a9647c8ca6295e16ea7f.png

Hi Rello,

The player allready works within the share-screen?
https://transfer.strengholt.nl/index.php/s/uKTfNAQdgMV5Ur3

I would like them not being able to download the file. This way they can still download it.
using thins link they don’t get a download button.
" https://transfer.strengholt.nl/index.php/apps/audioplayer/getpublicaudiostreambetterdays.mp3?token=uKTfNAQdgMV5Ur3 "
https://transfer.strengholt.nl/index.php/apps/audioplayer/getpublicaudiostreambetterdays.mp3?token=uKTfNAQdgMV5Ur3

1 Like

hello,

a right-click - save-as still works and is not blockable :frowning:

hmm… true, but most people don’t know that :wink:
nothing is safe, the only thing you can do is try to make it hard for them.

Hi @Rello,

thanks for the app. Seems to be useful! :slight_smile:

What about this bug? :

Hi,
The issue was not related to the kind of storage - it was related to the ID3-Tag determination being too picky.
It shoult work now.

Do you still have the issue with the current 1.0.1?

Here is the problem: i could hide the download button in case a playable audiofile is shared.
But what about people who want to offer a audio file for download?
I dont know how to separate this - and engancing the share-functionality itself with another checkbox or so sounds a little “expensive”

Any better idea?

Yes, in 1.0.1 Filescan in External Storage works.

Unfortunately it stops at some files and I have to restart it very often:

owncloud.log shows this:

{“reqId”:“gs9FwaAI4V+ePemjhToW”,“remoteAddr”:“79.232.xxx.xxx”,“app”:“PHP”,“message”:“fopen(/var/ocdata/mucke-share/cache/audioplayer-import-1469956777): failed to open stream: No such file or directory at /var/www/nextcloud/lib/private/files/storage/local.php#261”,“level”:3,“time”:“2016-07-31T09:19:50+00:00”,“method”:“POST”,“url”:“/apps/audioplayer/scanforaudiofiles”,“user”:“mucke-share”}
{“reqId”:“gs9FwaAI4V+ePemjhToW”,“remoteAddr”:“79.232.xxx.xxx”,“app”:“PHP”,“message”:“fread() expects parameter 1 to be resource, boolean given at /var/www/nextcloud/lib/private/files/storage/wrapper/encryption.php#849”,“level”:3,“time”:“2016-07-31T09:19:50+00:00”,“method”:“POST”,“url”:“/apps/audioplayer/scanforaudiofiles”,“user”:“mucke-share”}
{“reqId”:“gs9FwaAI4V+ePemjhToW”,“remoteAddr”:“79.232.xxx.xxx”,“app”:“PHP”,“message”:“fclose() expects parameter 1 to be resource, boolean given at /var/www/nextcloud/lib/private/files/storage/wrapper/encryption.php#850”,“level”:3,“time”:“2016-07-31T09:19:50+00:00”,“method”:“POST”,“url”:“/apps/audioplayer/scanforaudiofiles”,“user”:“mucke-share”}
{“reqId”:“DDvczmN2zXbKe+5zESZT”,“remoteAddr”:“79.232.xxx.xxx”,“app”:“PHP”,“message”:“filemtime(): stat failed for /var/ocdata/mucke-share/cache/audioplayer-import-1469956777 at /var/www/nextcloud/lib/private/files/storage/local.php#159”,“level”:3,“time”:“2016-07-31T09:19:56+00:00”,“method”:“POST”,“url”:“/apps/audioplayer/scanforaudiofiles”,“user”:“mucke-share”}
{“reqId”:“ZiywRpRSuWVoocYaa5AL”,“remoteAddr”:“79.232.xxx.xxx”,“app”:“PHP”,“message”:“filesize(): stat failed for /var/ocdata/mucke-share/cache/audioplayer-import-1469956777 at /var/www/nextcloud/lib/private/files/storage/local.php#185”,“level”:3,“time”:“2016-07-31T09:20:09+00:00”,“method”:“POST”,“url”:“/apps/audioplayer/scanforaudiofiles”,“user”:“mucke-share”}
{“reqId”:“ZiywRpRSuWVoocYaa5AL”,“remoteAddr”:“79.232.xxx.xxx”,“app”:“PHP”,“message”:“fread(): Length parameter must be greater than 0 at /var/www/nextcloud/lib/private/files/storage/local.php#191”,“level”:3,“time”:“2016-07-31T09:20:09+00:00”,“method”:“POST”,“url”:“/apps/audioplayer/scanforaudiofiles”,“user”:“mucke-share”}
{“reqId”:“ZvrxHZ0OkLRUtW/9Fa+m”,“remoteAddr”:“79.232.xxx.xxx”,“app”:“PHP”,“message”:“filemtime(): stat failed for /var/ocdata/mucke-share/cache/audioplayer-import-1469956777 at /var/www/nextcloud/lib/private/files/storage/local.php#159”,“level”:3,“time”:“2016-07-31T09:20:13+00:00”,“method”:“POST”,“url”:“/apps/audioplayer/scanforaudiofiles”,“user”:“mucke-share”}
{“reqId”:“vq6THYuqfNu3VWZp30v/”,“remoteAddr”:“79.232.xxx.xxx”,“app”:“PHP”,“message”:“filemtime(): stat failed for /var/ocdata/mucke-share/cache/audioplayer-import-1469956777 at /var/www/nextcloud/lib/private/files/storage/local.php#159”,“level”:3,“time”:“2016-07-31T09:20:26+00:00”,“method”:“POST”,“url”:“/apps/audioplayer/scanforaudiofiles”,“user”:“mucke-share”}
{“reqId”:“MZQ/YQshkd9ffOgVm56Q”,“remoteAddr”:“79.232.xxx.xxx”,“app”:“PHP”,“message”:“filemtime(): stat failed for /var/ocdata/mucke-share/cache/audioplayer-import-1469956777 at /var/www/nextcloud/lib/private/files/storage/local.php#159”,“level”:3,“time”:“2016-07-31T09:20:28+00:00”,“method”:“POST”,“url”:“/apps/audioplayer/scanforaudiofiles”,“user”:“mucke-share”}
{“reqId”:“VQ07nCbIqPxbKU1pzYVQ”,“remoteAddr”:“79.232.xxx.xxx”,“app”:“PHP”,“message”:“filesize(): stat failed for /var/ocdata/mucke-share/cache/audioplayer-import-1469956777 at /var/www/nextcloud/lib/private/files/storage/local.php#185”,“level”:3,“time”:“2016-07-31T09:20:28+00:00”,“method”:“POST”,“url”:“/apps/audioplayer/scanforaudiofiles”,“user”:“mucke-share”}
{“reqId”:“VQ07nCbIqPxbKU1pzYVQ”,“remoteAddr”:“79.232.xxx.xxx”,“app”:“PHP”,“message”:“fread(): Length parameter must be greater than 0 at /var/www/nextcloud/lib/private/files/storage/local.php#191”,“level”:3,“time”:“2016-07-31T09:20:28+00:00”,“method”:“POST”,“url”:“/apps/audioplayer/scanforaudiofiles”,“user”:“mucke-share”}
{“reqId”:“dil/3hXHl41jNzL30uQP”,“remoteAddr”:“79.232.xxx.xxx”,“app”:“index”,“message”:“Exception: {"Exception":"Doctrine\\DBAL\\Exception\\DriverException","Message":"An exception occurred while executing ‘UPDATE oc_audioplayer_albums SET year= ?, genre_id= ? WHERE id = ? AND user_id = ?’ with params [\"\", \"10\", \"378\", \"mucke-share\"]:\n\nSQLSTATE[HY000]: General error: 1366 Incorrect integer value: ‘’ for column ‘year’ at row 1","Code":0,"Trace":"#0 \/var\/www\/nextcloud\/3rdparty\/doctrine\/dbal\/lib\/Doctrine\/DBAL\/DBALException.php(116): Doctrine\\DBAL\\Driver\\AbstractMySQLDriver->convertException(‘An exception oc…’, Object(Doctrine\\DBAL\\Driver\\PDOException))\n#1 \/var\/www\/nextcloud\/3rdparty\/doctrine\/dbal\/lib\/Doctrine\/DBAL\/Statement.php(174): Doctrine\\DBAL\\DBALException::driverExceptionDuringQuery(Object(Doctrine\\DBAL\\Driver\\PDOMySql\\Driver), Object(Doctrine\\DBAL\\Driver\\PDOException), ‘UPDATE `oc_audi…’, Array)\n#2 \/var\/www\/nextcloud\/lib\/private\/db\/statementwrapper.php(73): Doctrine\\DBAL\\Statement->execute(Array)\n#3 \/var\/www\/nextcloud\/apps\/audioplayer\/controller\/scannercontroller.php(664): OC_DB_StatementWrapper->execute(Array)\n#4 \/var\/www\/nextcloud\/apps\/audioplayer\/controller\/scannercontroller.php(518): OCA\\audioplayer\\Controller\\ScannerController->writeAlbumToDB(‘Byrdmaniax’, ‘’, ‘10’)\n#5 [internal function]: OCA\\audioplayer\\Controller\\ScannerController->scanForAudios()\n#6 \/var\/www\/nextcloud\/lib\/private\/appframework\/http\/dispatcher.php(159): call_user_func_array(Array, Array)\n#7 \/var\/www\/nextcloud\/lib\/private\/appframework\/http\/dispatcher.php(89): OC\\AppFramework\\Http\\Dispatcher->executeController(Object(OCA\\audioplayer\\Controller\\ScannerController), ‘scanForAudios’)\n#8 \/var\/www\/nextcloud\/lib\/private\/appframework\/app.php(110): OC\\AppFramework\\Http\\Dispatcher->dispatch(Object(OCA\\audioplayer\\Controller\\ScannerController), ‘scanForAudios’)\n#9 \/var\/www\/nextcloud\/lib\/private\/appframework\/routing\/routeactionhandler.php(45): OC\\AppFramework\\App::main(‘ScannerControll…’, ‘scanForAudios’, Object(OC\\AppFramework\\DependencyInjection\\DIContainer), Array)\n#10 [internal function]: OC\\AppFramework\\routing\\RouteActionHandler->__invoke(Array)\n#11 \/var\/www\/nextcloud\/lib\/private\/route\/router.php(276): call_user_func(Object(OC\\AppFramework\\routing\\RouteActionHandler), Array)\n#12 \/var\/www\/nextcloud\/lib\/base.php(967): OC\\Route\\Router->match(‘\/apps\/audioplay…’)\n#13 \/var\/www\/nextcloud\/index.php(39): OC::handleRequest()\n#14 {main}","File":"\/var\/www\/nextcloud\/3rdparty\/doctrine\/dbal\/lib\/Doctrine\/DBAL\/Driver\/AbstractMySQLDriver.php","Line":115}”,“level”:3,“time”:“2016-07-31T09:20:30+00:00”,“method”:“POST”,“url”:“/apps/audioplayer/scanforaudiofiles”,“user”:“mucke-share”}

I can understand it’s too much work for too little usage. Do you think it’s possible to somehow easily create the stream link?
" Strengholt Transfer Cloud "
I allready asked for a more advanced mail template function, but that will take some time i guess :slight_smile:

as tested with your file: will be fixed with the next version (tomorrow?). I switched to rawurlencode to handle all special characters correctly

I checked 3 options:

  1. add CSS classes to the download-Button and an additional textfield with the streaming-link. These classes can be used to disable/enable via a theme-css-file globally for your whole NC/OC instance.
  2. make user-settings for these 2 Options so the user can change for all his sharing-links wether they should provide the player, and/or the download-link, and/or the streaming link
  3. as before - but only with config.php parameters so for the whole instance

so the question is: globally or user dependent?
3 is the simplest;
2 nice but complex dev;
1 simple dev but not user/admin comfortable

1 Like