Hello.
I have a number of audio files assigned to my cartwall and also in a browser pane that are actually located in a Dropbox folder. Normally any computer that has access to the Dropbox account has a local dropbox folder that syncs to the remote dropbox folder. So if a change is made to a file in the in any of the dropboxes they would normally all sync on all computers.
In other playout systems that i’ve used if a file is changed but the filename remains the same you can normally play the modified file…eg an updated news bulletin etc from a cartwall or player.
This is possible in Mairlist but Mairlist appears to be stopping the syncing process. So I can only play the version of the file that was initially put into the Browser pane or cartwall.
Dropbox attempts to sync but gives an error of access denied, however if I close Mairlist then syncing goes ahead with no problems. I then re-open Mairlist and the modified file can be played from the cartwall or the Browser. I have tried various options including disabling read only on the browser config. Other computers are syncing to the files with no problems.
It’s as if Mairlist is not allowing the files to be modified in the local dropbox. Just wondered if anybody has encountered this problem? Or if these may be a way around this?
Thanks for any advise
MAZ
AFAIK bass.dll locks the file on disk during playback and prevents them from being overwritten.
When you turn on File Management (mAirListConfig -> Misc -> File Management), all file operations will be performed by mAirList instead of bass.dll.
Unless you turn on “Write-protected files during playback”, mAirList will open all files in “read-only and no lock” mode. Perhaps this is sufficient to let Dropbox overwrite the file.
In the snapshot #2055 I’ve just uploaded there is a new File Management option “Cache all files”. When you turn it on, mAirList will make a copy of the file in your temp folder and close/unlock the original file instantly.
(There was a similar option “Cache network files” before - same mechanism, but only for files on network shares.)
Hello Torben.
Installing snapshot 2055 and enabling ‘Cache all files’ allows the dropbox folder to be sync’d to all the other dropbox folders.
I still can’t get Mairlist to play the updated file though.
I have enable autoupdate of folder contents enabled in the Browser config and have tried closing and opening the browser.
I’ve also tried using the browsers refresh button, but all to no avail.
If I play the updated file in an external player (eg winamp) then all is OK, but if I drag it from the browser window into a player or if I play it from the cartwall then Mairlist still plays the old version of the file.
The only way to update the file in Mairlist is to close and re-open Mairlist itself.
MAZ
mAirList “prebuffers” the next few items in the playlists - that’s the small green arrows you see next to the icons. Perhaps that’s the problem?
You can turn that off for a particular item in the playback options for that item (“Do not prebuffer”).
If I turn off pre buffer and also enable do not use file manager for each of the fies in their properties I can then play the updated file from the browser, which is great.
However if I then put the files into the cartwall I am back to the access denied problem and the dropbox folder won’t sync. :-\
MAZ
There are two aspects to consider here:
-
Files being locked while opened (in player, or prebuffered) in mAirList, Dropbox cannot overwrite them => turn on File Management and possibly the “cache all” option, so that the original file is released quickly
-
Changes (files overwritten by Dropbox) not reflected once the file is opened in mAirList => there is no way to solve this, once the file is opened, you cannot replace it, mAirList will use the old content until you close and reopen the file.
I am not aware of any software product (Winamp, VLC, …) that is capable of #2. Either the file is locked and cannot be overwritten at all, or you can overwrite it, but the player continues to play the old content.
So if the file is assigned to a player on the cartwall does that constitute the file being opened?
I have used 2 different playout systems in the past where when a file (Audio cut) was assigned to a cartwall or hot key and that file was updated but the filename remained the same the cartwall or hot key would play the updated file.
Not sure whether to mention the 2 systems here or not :
Yes, when the file is in a cart player, this implies that it is opened. Same thing is true for the normal (playlist) players.
That’s because
(a) you want it to start instantly when you click PLAY, no delay caused by opening it first,
(b) you shall be sure that the file is found and OK when the player indicates it as loaded, there should be no rude surprise when you click PLAY and the file won’t open.
OK Thank you Torben.
I’ve just had a thought!
Is it possible to assign a file to the cartwall that plays an audio file?
A bit like a .bat file. If so would that mean that the cartwall didn’t open the audio file until the player was started?
Is this what scripts can do?
MAZ
You can use the “PlayItemDetached” method. Try the following script:
var
item: IPlaylistItem;
dev: IPlaybackDevice;
begin
// Get the playback device for the cartwall
dev := Instance.GetDeviceConfig.GetPlaybackDevice('Cartwall');
// Create the playlist item
item := Factory.CreatePlaylistItemFromFile('somefile.mp3', [
fitMMD,
fitTags,
fitNativeTags,
fitDuration,
fitTilde,
fitAutoCue,
fitDatabaseLookup
]);
// Use the PlayItemDetached method to play the file on the specified device
CurrentPlaylist.PlayItemDetached(item, dev);
end.
Save as playsomefile.mls, the add a new Silence playlist item (duration e.g. 1 second) to the playlist, and add the script as a “Run script” action to the “Actions on start”. Finally, drag that silence item from the playlist onto a cart player, then save the cart set.
I haven’t tested the above code, there might be syntax errors or so in it - just let me know.
OK Torben.
Thank you, I’ll give that a try asap.
MAZ
Hi Torben.
I’ve followed your instructions but I just get the 1 second silence when playing from the cart wall.
I’ve replaced the somefile.mp3 in the script with the path and folder and filename of the file that I want to play. I’m assuming that is correct.
I have saved the mls script file into my mairlist program folder and a subfolder called scripts and pointed the action on start to the script.
Thank you for your help.
MAZ
Any messages in the System Log? (Double click the status bar at the bottom of the main window.)
Tip: Ctrl+C to copy any error message from the log as text and paste it here in the forum.
This is the error
09/05/2014 14:16:43 Error Error executing action Run script (C:\Program Files\mAirList 4.4\scripts\playlocalnewsG.mls): [Error] (10:186): Type mismatch
playlocalnewsG.mls is the file name that I gave the script
MAZ
Looks like the script engine does not like the declaration of AllFileImportTasks, so I have listed the fit* values explictly - see edited post above.
The fit* flags tell mAirList where to look for metadata when opening the file. You can clear the values you don’t need.
Hi Torben.
That’s great thank you. It works well
Is there anything that I can use in actions on stop to stop the player on a second click? I’ve tried Cartplayer xx Stop Command but this doesn’t work. I guess thats because rather than starting an audio cut the player is executing a script.
Is there such a thing as a stop script?
Thank you.
MAZ