The issue, i believe, lies within your different embedding methods between the different browsers. Here's is some tested code where looping does not happen.
IE
<object id="contentPlayer" classid="CLSID:6BF52A52-394A-11d3-B153-00C04F79FAA6" width="300" height="60"><!-- <param name='fileName' value=''> -->
<param name='animationatStart' value='false'>
<param name='transparentatStart' value='true'>
<param name='autoStart' value='true'>
<param name='playState' VALUE='1'>
<param name='loop' value='false'>
</OBJECT>
Firefox
<object id="contentPlayer" name='contentPlayer' type="application/x-ms-wmp" data="" width="300" height="60"><!-- <param name='fileName' value=''> -->
<param name='animationatStart' value='false'>
<param name='transparentatStart' value='true'>
<param name='autoStart' value='true'>
<param name='playState' VALUE='1'>
<param name='loop' value='false'>
</OBJECT>
The primary difference being that in IE I have a classid but in Firefox I have a "type" classification