Link to home
Start Free TrialLog in
Avatar of cip
cip

asked on

"permission denied" with media player 9

Hi,

I have this html page with a media player object:

<html>
<head>

<script>
<!--
function showPosition(num)
{            
    document.WinMedia.currentposition=document.WinMedia.getmarkertime(num);
    document.WinMedia.Play()
}
//-->
</script>
</head>

<body topmargin='0' leftmargin='0' bgcolor='#010066' onload="showPosition(1)">
<object id="WinMedia" width="224" height="176"
  codebase="http://activex.microsoft.com/activex/controls/mplayer/en/nsmp2inf.cab#Version=6,4,5,715"
  classid="CLSID:22D6F312-B0F6-11D0-94AB-0080C74C7E95"
  standby="Loading Windows Media Player components..."
  type="application/x-oleobject">
  <param name="FileName" value="mms://192.168.1.1/video.asf">
  <param name="ShowStatusBar" value="true">
  <param name="EnableContextMenu" value="false">
  <param name="AutoSize" value="false">
  <param name="ShowControls" value="false">
  <param name="ShowDisplay" value="false">
  <param name="DefaultFrame" value="synch">
  <param name="autostart" value="false">
</object>
</body>
</html>

With Windows Media Player series 9, as soon as the "showPosition()" script is invoked, I get the error:

"Javascript run-time error: permission denied" (or authorization denied, couldn't figure out the precise english translation here). The statement that cause the problem is "document.WinMedia.getmarkertime(num)". Sseems that reading the marker time is enough to trigger the error.

Any help?
Avatar of jaysolomon
jaysolomon

Try this

function showPosition(num)
{          
    document.getElementById('WinMedia').currentposition=document.getElementById('WinMedia').getmarkertime(num);
    document.getElementById('WinMedia').Play()
}
Avatar of cip

ASKER

Jaysolomon,

Tried that, but unfortunately I still get the permission denied message.

Maybe a shot in the dark, but is the html page and the media in the same domain?

M=
Avatar of devic
hey cip,

your link is dead:
   mms://192.168.1.1/video.asf

try some other:
   mms://media3.ag.org/gc2003/20030801_PMvideo.asf
ASKER CERTIFIED SOLUTION
Avatar of devic
devic
Flag of Germany image

Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
Avatar of cip

ASKER

Mikehd,

I have downloaded and copied the lesson in the same folder of the html file, and changed the filename parameter to:

<param name="FileName" value="video.asf">

but I am still getting the error.

Devic, I changed the parameter file to point to your video, same thing. The link is dead because I don't want my video server address to be public. What do you mean by "sound is inside, you need wait"?
Mikehd,

i mean, that movie beginn without sound, and sound in this movie come later.



so i changed only  mms link and for me works fine:
===========================
<html>
<head>

<script>
<!--
function showPosition(num)
{          
   document.WinMedia.currentposition=document.WinMedia.getmarkertime(num);
   document.WinMedia.Play()
}
//-->
</script>
</head>

<body topmargin='0' leftmargin='0' bgcolor='#010066' onload="showPosition(1)">
<object id="WinMedia" width="224" height="176"
 codebase="http://activex.microsoft.com/activex/controls/mplayer/en/nsmp2inf.cab#Version=6,4,5,715"
 classid="CLSID:22D6F312-B0F6-11D0-94AB-0080C74C7E95"
 standby="Loading Windows Media Player components..."
 type="application/x-oleobject">
 <param name="FileName" value="mms://media3.ag.org/gc2003/20030801_PMvideo.asf">
 <param name="ShowStatusBar" value="true">
 <param name="EnableContextMenu" value="false">
 <param name="AutoSize" value="false">
 <param name="ShowControls" value="false">
 <param name="ShowDisplay" value="false">
 <param name="DefaultFrame" value="synch">
 <param name="autostart" value="false">
</object>
</body>
</html>
Avatar of cip

ASKER

I finally managed to solve the problem.

When the script executes the command WinMedia.getMarkerTime(num), the media player still hasn't completely loaded the file, and the total number of markers (property markerCount) is set to 0. So the attempt to read the position of marker number 1, when the total number of markers is still 0, triggers the error.

I changed the script this way:

var globalTries = 0;

function showPosition(num)
{            
  self.setTimeout("timeoutShowPosition("+num+")",200);
}

function timeoutShowPosition(num)
{
  if (WinMedia.MarkerCount == 0) // MarketCount still 0, file hasn't completely loaded yet
  {
    if (globalTries > 100 ) // timeout after 20 seconds
      alert("Timeout occurred trying to open the movie.");
    else
      self.setTimeout("timeoutShowPosition("+num+")",200);
            
    globalTries++; // increment tries
    return;
  }
      
  document.WinMedia.currentposition=document.WinMedia.getmarkertime(num);
  document.WinMedia.Play()
}

I didn't want to believe that today's media players could still have syncronizing problems, but that is it.

I'll give Devic's the points. His sentence "you need to wait" gave me the idea of waiting till the file was loaded, even if the real sentence meaning is different.