salomvary / soundcleod

SoundCloud for macOS and Windows
https://soundcleod.com
MIT License
960 stars 105 forks source link

Playback Gets "Stuck" Frequently #107

Closed jasonseney closed 8 years ago

jasonseney commented 8 years ago

I've noticed when listening to a few songs, the playback will stop and I'll get the 3 dot loading animation on the play/pause button for that track. Pressing play/pause on the keyboard or the interface does not fix it, however, if I click just 2-5 sec before the current mark it starts playing again with out issue.

I uses Soundcleod for 4-6 hours a day and this generally happens 2-8 times during that time. Note - I do use pause / play every 30 min.

Thank you for any help! I'm wondering if there's a buffering issue that might be surfaced due to my usage patterns?

hacknug commented 8 years ago

Same here. I use SoundCleod for at least a couple hours every day (it's usually something between 6 and 8 hours, depending on what I'm working on) and it's been getting stucked for a while. As @jasonseney says, going back a few seconds solves the issue but it's a real pain in the ass doing that every time it happens. It also gets stucked at the end of the song sometimes.

Using macOS El Capitan 10.11.6 beta (15G24b) right now.

jbergstroem commented 8 years ago

Fwiw, I get this in Safari too.

genevera commented 8 years ago

Here is some relevant console output (I'm seeing this also):

8/31/16 5:36:02.967 PM SoundCleod[37657]: CFNetwork SSLHandshake failed (-9806)
8/31/16 5:36:02.967 PM SoundCleod[37657]: NSURLSession/NSURLConnection HTTP load failed (kCFStreamErrorDomainSSL, -9806)
8/31/16 5:36:03.611 PM SoundCleod[37657]: <<< FFR_Movie >>> ParseTrackExtendsAtom: *** Did not find fragment's track ID 2 in trackInfo
8/31/16 5:36:03.617 PM SoundCleod[37657]: <<< FFR_Movie >>> ParseTrackExtendsAtom: *** Did not find fragment's track ID 2 in trackInfo
8/31/16 5:36:17.248 PM SoundCleod[37657]: CFNetwork SSLHandshake failed (-9806)
8/31/16 5:36:17.248 PM SoundCleod[37657]: NSURLSession/NSURLConnection HTTP load failed (kCFStreamErrorDomainSSL, -9806)

I haven't browsed the code yet but if there is some way to enable debug logging I'm happy to do so and paste in the results here.

salomvary commented 8 years ago

The background of this quite annoying bug lies in SoundCleod using a version of WebKit (the embedded browser engine) that is about the equivalent of an older version of Safari - which does not get first class support on soundcloud.com.

The possible solutions are:

  1. soundcloud.com supporting this older browser version (fix the playback bugs) - seems unlikely
  2. Change SoundCleod to use WKWebView (which uses a more recent WebKit engine). This would mean dropping support for pre-Yosemite OSX. See also https://github.com/salomvary/soundcleod/issues/66
  3. Rewrite SoundCleod to use Electron, which gets regular updates for WebKit and is the closest to Chrome in its feature set. Requires rewriting SoundCleod from grounds. See also https://github.com/salomvary/soundcleod/issues/101
  4. Switch to Chromium Embedded Framework. Not sure if it's better than any of the alternatives and definitely sounds like quite a bit of work.
genevera commented 8 years ago

I vote for whatever is easiest as this renders the application unusable for me once it starts. If it's a fast switch then wkwebview sounds like an ok solution.

...but that's me using a modern version of the OS. Is supporting 3+ year old versions of OSX really a higher priority than making sure that users with newer machines or who apply OS updates can use this app?

jbergstroem commented 8 years ago

@salomvary how about major version bumping and switching to Yosemite+ in the major? Shouldn't be too hard to maintain parallel majors seeing how commit frequency is pretty low.

salomvary commented 8 years ago

Status update: I tried out the switch to WKWebView:

I don't think I can bear the pain of working with Cocoa/Objective-C any longer, seriously considering the switch to Electron. See https://github.com/salomvary/soundcleod/issues/101 for updates..

salomvary commented 8 years ago

Fixed in 1.0.0.

jasdev commented 8 years ago

@salomvary: You rock! Thanks so much for the rewrite!

genevera commented 8 years ago

Thank you!! 🙏