Here's my two cents, and hopefully I can help someone else.
- I have a library where all the media is stored on a shared NAS drive mapped on all computers as the V: drive.
- The library is also stored on this NAS drive and loaded by all machines.
- The main desktop used for working with the library loads them in full access mode.
- On the other two machines, all shortcuts and links have had the /LibraryReadOnly argument added. This ensures that only the desktop can write the files, and everyone else gets read only access.
This approach has worked well for me, and is faster and simpler than any kind of server approach (which usually required full transfer of the file before playing). As anyone who's done this knows, there are a few problems with this approach:
1. Playcounts are not updated when items are played on ReadOnly machines.
2. Updates to the library are not mirrored to the other units.
I believe I have a solution for both of these situations, and if anyone is interested, their input would be welcome. My solution is to write a plugin (yes, I can do this) that will store a log on the shared network drive. Whenever a file is played from one of the ReadOnly Machines, that item will be added to the log. The Desktop running in full access mode will monitor this file. When it changes, it will increment the NumberPlays field (if it's possible to do so, if not I'll create another field that can be incremented as a playcount). The ReadOnly versions will increment their playcount as well. Even though the changes won't be saved, this should keep them in line with the actual library until the next update. This should effectively solve the Playcount issue.
As for Updating the ReadOnly versions, a simple batch file containing the MC12 command to run it in read only mode should refresh the library. This same plugin can monitor that log and when changes are made, or every N minutes, refresh the library. You definitely don't want to do this often though. If I'm listening to MP3's downstairs, and someone is watching a movie upstairs, you don't want it to refresh their library after each song.
One other thing. A lot of talk has been done over having a smaller version of MC12, just a readonly Theater View based unit (with playcount support of course) for use on those machines that are only used as players. I had previously written a very small program that used HTML to display a player (making it very easy to create skins). Clicking the designated hyperlinks executed program commands (Play, Pause, Next, Exit, etc). This interfaced with WMP. Now it would not be too difficult to modify that program so it opened a connection with the shared library and presented a Theater View style interface for navigating menus/playlists/media, then played selected items in WMP.
I know that's kinda against the point of MC, but until they come up with a smaller player, or allow us to add submenus or library commands to the Theater View menu, it's an option. Not sure I'll take that one up though.
If anyone is interested in a plugin that will update the main library's playcounts from readonly instances of MC12, chime in.
-Tano