Bugzilla – Bug 1909
Need to be able to synchronize a player to another w/o interrupting playback of first player
Last modified: 2010-03-08 08:38:53 UTC
When sync'ing one hardware player to another, it is really important that the playback of the first player not be interrupted. The use case is, music playing in one area, with listeners comfortably ensconces. Proud Slim owner walks to another area, and wants to show off cool new technology and says "hey--I can get the same music in here" and sync's, and all the partiers in the other room suddenly lose their groove. :) Possible workarounds--queue up syncing to begin on next song, or wait until you can guarantee syncing, but forcing the original stream to be interrupted is a big problem.
Sync is designed based on starting tracks at the same time. The restarting of the track on the synced players is by design. Marking this as an enhancement and remarking server version since current behaviour is still the same as 5.4.1. Second option presented would depend on bug259, so linking to that as well. Linking up on next song would seem to be esy enough, but is a marked change in behaviour (thus will likely result in demands that it be an option). Would probably require that the waiting player show a "please wait" message, plus proper detection of playback status of the target player, and maybe feedback in the form of a rough countdown.
Waiting for the next song is a bad solution for users like me who play very long clips. I rip whole programs - usually 1 or 2 hours long as single MP3 clips. Similarly for classical CD's where one track may be a whole movement of a symphony This also makes the current sync behavior of resetting to the start of tghe current track really unpleasant for long clip users. So I only vote for a fix which picks up the second player without affecting the clip being played.
*** Bug 3827 has been marked as a duplicate of this bug. ***
Building on the ideas described in http://forums.slimdevices.com/showthread.php?t=34535, it might be possible to achieve this functionality as follows: 1. Mute the new player in the sync group 2. Start streaming to the new player from wherever we are in the stream (in Slim::Player::Source); fake up the counters for $client->streamBytes (probably no need) and work out an offset for $client->songElapsedSeconds - not so easy to do accurately for variable bit-rate streams but okay if we are not using the songElapsedSeconds for maintaining the sync point. 3. Since we have just leap-frogged over the data already in the playing-players' buffers, the new player is bound to be ahead in the sync set. 4. The re-sync logic can bring the new player into sync by pausing it a bit. 5. Once in sync it can be un-muted. It would be essential that the new player gets added as a slave of the existing master.
This has not been tackled by the recent round of sync changes. I am still thinking about it. It is quite a difficult issue, especially when you take into account all the various player and data-source types: local files, transcoded, remote (direct) streaming, real-time streams (radio). There is some discussion at http://forums.slimdevices.com/showthread.php?t=35463
The syncoptions plugin does the trick for me. Why not just integrate that function?
Recent changes mean that, although playback is interrupted, it restarts from the same position if the format and source support seeking. This is a significant improvement.
Your message was received at Mon, 17 Aug 2009 13:06:12 +0000: To: boren@bluebottle.com Subject: [Bug 1909] Need to be able to synchronize a player to another w/o interrupting playback of first player This account is protected by Bluebottle. Please click on the following link to have your address added to the recipient's allowed list and to ensure delivery of your email. http://www.bluebottle.com/verification/a94128ed92c3c34f9af181f159b1fdc2 Bluebottle is a trademark of Bluebottle Solutions Pty Ltd
Update hours
Your message was received at Tue, 29 Sep 2009 10:10:21 +0000: To: boren@bluebottle.com Subject: [Bug 1909] Need to be able to synchronize a player to another w/o interrupting playback of first player This account is protected by Bluebottle. Please click on the following link to have your address added to the recipient's allowed list and to ensure delivery of your email. http://www.bluebottle.com/verification/42507bcbf146969e9894bce7d1ac6de6 Bluebottle is a trademark of Bluebottle Solutions Pty Ltd
There is no likelihood of work to improve this any further.