[Req] Album Shuffle option
The "shuffle by album" function is absent from the iPhone. It's one of the good things in iTunes and (most of the) iPods. For people who
- like to be surprized but get crazy from listening to a different artist every three minutes, or
- listen to classical music (where it makes little sense to hear just one movement instead of the whole work),
the album shuffle was a great function. If you have many albums of the same artist, you don't want to hear the collected works of one artist for a whole day.
Is there a chance of patching MobileMusicPlayer.app to provide this function?
EDIT: Recommended solution is in post #17 below.
Had to create awkward additional solution - Help!
It turns out the Album Shuffle solution I posted above is not persistent. It doesn't survive a relaunch of Springboard or a reboot of the phone. When the Mobile Music Player starts, it resets the shuffle settings to defaults I can't control.
Of course I cannot SSH into the phone every time I want Album Shuffle. So I downloaded plutil for iPhone from Erica Sadun's ftp server and put it in /usr/bin on the iPhone, changing the permissions to make it executable. Then I put the necessary shell commands in a script, hoping to make the process of creating the right settings at least reasonably quick.
Next, I looked for a way to launch that shell script from Springboard, but it seems difficult. I ended up using Erica's doshell.app, downloaded from this place. In the included script file doit.sh I put the following commands:
I renamed the folder doshell.app to Albumshuffle.app, copied that to the iPhone in /Applications, and set the permissions to executable.
plutil -s MusicShuffleSetting -v Off /var/root/Library/Preferences/com.apple.mobileipod.plist
plutil -s MusicPreferedShuffleOnSetting -v Albums /var/root/Library/Preferences/com.apple.mobileipod.plist
plutil -s MusicShuffleSetting -v Albums /var/root/Library/Preferences/com.apple.mobileipod.plist
This now works: I have an icon on Springboard that sets the music player to Album Shuffle. (Sometimes I have to turn shuffle on and off again after using this, but that's not a problem). However, it is even less elegant than the solution I posted earlier (which turned out not to be so good). The script doesn't run in the background; you actually get to see the lines and have to press Home to get out of it.
Does anyone know of a way to launch a shell script from Springboard and have it run in the background?