Q about PlaySound() - Printable Version
-Shoutbox (https://shoutbox.menthix.net)
+-- Forum: MsgHelp Archive (/forumdisplay.php?fid=58)
+--- Forum: Messenger Plus! for Live Messenger (/forumdisplay.php?fid=4)
+---- Forum: Scripting (/forumdisplay.php?fid=39)
+----- Thread: Q about PlaySound() (/showthread.php?tid=94564)
Q about PlaySound() by hakxx on 05-11-2010 at 02:52 PM
Hello,
How can use playsound() with a link from a website ??
I know this :
MsgPlus.PlaySound("\c:\\sound.mp3") ;
but how :
MsgPlus.PlaySound("http://shoutbox.menthix.net/sound.mp3") ;
Thanks
RE: Q about PlaySound() by matty on 05-11-2010 at 02:57 PM
You cannot. MsgPlus.PlaySound will only play files locally from your machine. You will need to download and save the file from the webserver and play it.
RE: Q about PlaySound() by hakxx on 05-11-2010 at 03:51 PM
Is there another way to play audio from website, or idea ..?
Thank you very much matty..
RE: Q about PlaySound() by matty on 05-11-2010 at 04:40 PM
You can download the file and then play it locally from the computer like I said earlier...
RE: Q about PlaySound() by hakxx on 05-11-2010 at 04:45 PM
will , Thank you matty : ) I'm sorry
I'm try but no result..
how to select place download file and play it ..?
RE: Q about PlaySound() by matty on 05-11-2010 at 05:27 PM
This code is from the scripting documentation...
js code: function DownloadUpdateFile(sFile)
{
var Started = MsgPlus.DownloadFile(sFile);
if(Started)
Debug.Trace("Downloading file, waiting for event");
else
Debug.Trace("Couldn't start the download");
}
function OnEvent_DownloadFileComplete(Url, OutFile, Success)
{
Debug.Trace("DownloadFileComplete event received for " + Url);
Debug.Trace(" Success: " + Success);
if(Success)
{
MsgPlus.PlaySound(OutFile);
}
}
RE: Q about PlaySound() by hakxx on 05-11-2010 at 11:58 PM
code: function OnGetScriptMenu(Location)
{
var ScriptMenu = "<ScriptMenu>";
ScriptMenu += "<MenuEntry Id=\"s1">sound1</MenuEntry>";
ScriptMenu += "</ScriptMenu>";
return ScriptMenu;
}
function OnEvent_MenuClicked(sMenuId, nLocation, iOriginWnd) {
if (sMenuId=="s1"){
DownloadUpdateFile("http://ex.com/001.mp3");
}
}
function DownloadUpdateFile(sFile)
{
var Started = MsgPlus.DownloadFile(sFile);
if(Started)
Debug.Trace("Downloading file, waiting for event");
else
Debug.Trace("Couldn't start the download");
}
function OnEvent_DownloadFileComplete(Url, OutFile, Success)
{
Debug.Trace("DownloadFileComplete event received for " + Url);
Debug.Trace(" Success: " + Success);
if(Success)
{
MsgPlus.PlaySound(OutFile);
}
}
^^ it this code true ?
Thank you very very much
RE: Q about PlaySound() by Matti on 05-12-2010 at 11:29 AM
That'll probably work (look okay, haven't tested though). However, there are some things you should consider:
- With that code, you're going to download the .mp3 file every time you click the menu item. I don't know what the purpose of your script is, but wouldn't it be better to download it only the first time to a known location and just play the local file every time it's called afterwards?
- More importantly: your script is responsible for the clean-up of the downloaded files. That means, if you download a file to a temporary location, Plus! won't delete it when the script terminates. When you don't clean up your temporary files, you'll end up with a big mess of files in your Temp directory.
Therefore, it would be better if you keep track of all downloaded files and schedule them for deletion on script termination:
js code: // Global array to store downloaded files in
var arrDownloaded = [];
// On exit, loop through the array and remove all downloaded files
function OnEvent_Uninitialize() {
var FSO = new ActiveXObject("Scripting.FileSystemObject");
var i = arrDownloaded.length;
while(i--) {
try { FSO.GetFile(arrDownloaded[i]).Delete(); } catch(e) { }
}
arrDownloaded = [];
}
// On download complete, add the file to the downloaded files array
function OnEvent_DownloadFileComplete(Url, OutFile, Success) {
Debug.Trace("DownloadFileComplete event received for " + Url);
Debug.Trace(" Success: " + Success);
if(Success) {
>>> arrDownloaded.push(OutFile);<<<
MsgPlus.PlaySound(OutFile);
}
}
RE: Q about PlaySound() by matty on 05-12-2010 at 01:44 PM
You are missing the escape character in this line:
ScriptMenu += "<MenuEntry Id=\"s1">sound1</MenuEntry>";
RE: Q about PlaySound() by hakxx on 05-13-2010 at 06:07 PM
Sorry for the delay, I'll try the code, thank you for you (matti,matty)
|