Javascript IE HTML5音频文件挂在windows localhost上-适用于所有其他浏览器和web
我有mp3音频文件,可以在firefox和chrome中完美地工作。在ie 10和11中,它们在我的live网站上也能完美地工作 然而,突然在Windows7本地主机上,一个示例文件在一个实例中可以正常工作,但在下一个实例中,音频控件挂起。例如,以下代码使用文件1.mp3。我将1.mp3(也尝试了重命名)复制到some-other-name.mp3,但它不起作用-只是在控件可见的情况下挂起。我清除了网站数据和临时文件,但没有运气。我将文件重新命名为1.mp3,现在它不再工作。会发生什么事?在它自动更新到IE11之前,它在IE10中工作。我卸载了更新,回到ie 10,但这没有帮助。再一次,在我的现场网站上,一切都正常,甚至在ie中,让我发疯 我已经编写了代码来完全消除javascript。即使禁用了javascript,它仍然会冻结。有什么事吗?这是编解码器地狱吗Javascript IE HTML5音频文件挂在windows localhost上-适用于所有其他浏览器和web,javascript,php,internet-explorer,html5-audio,freeze,Javascript,Php,Internet Explorer,Html5 Audio,Freeze,我有mp3音频文件,可以在firefox和chrome中完美地工作。在ie 10和11中,它们在我的live网站上也能完美地工作 然而,突然在Windows7本地主机上,一个示例文件在一个实例中可以正常工作,但在下一个实例中,音频控件挂起。例如,以下代码使用文件1.mp3。我将1.mp3(也尝试了重命名)复制到some-other-name.mp3,但它不起作用-只是在控件可见的情况下挂起。我清除了网站数据和临时文件,但没有运气。我将文件重新命名为1.mp3,现在它不再工作。会发生什么事?在它自
<table>
<td><a href="?mp3file=1.mp3". onClick="CreateAudio('1.mp3', 'divid'); return false;">Play</a></td>
<td><div id="divid"></div></td>
</table>
<?php
if (isset($_GET['mp3file'])){
// only here if javascript disabled
?>
<audio id="audioplayer" preload controls autoplay style="width:225px ;">
<source src="<?php echo $_GET['mp3file']; ?>" type="audio/mpeg">
</audio>
<?php
}
?>
<script type="text/javascript">
currentAudioPlayerID="";
function CreateAudio(mp3file, id){
// remove old player
if (currentAudioPlayerID!=""){
var oldaudio = document.getElementById("audio-" + currentAudioPlayerID);
oldaudio.parentNode.removeChild(oldaudio)
};
// add new player
currentAudioPlayerID=id;
var audio = document.createElement('audio');
var source= document.createElement('source');
source.type= 'audio/mpeg';
source.src= mp3file;
audio.appendChild(source);
oggfile = mp3file.replace(".mp3",".ogg");
source= document.createElement('source');
source.type= 'audio/ogg';
source.src= oggfile;
audio.appendChild(source);
audio.setAttribute("id", "audio-"+id)
var div = document.getElementById(id);
div.appendChild(audio);
audio.load;
audio.play();
audio.controls = true;
audio.autoplay="True"
audio.style="width:225px;"
}
</script>
正如我正确理解的那样,使用短语“localhost”实际上可能意味着两件截然不同的事情。您是直接从桌面打开文件(双击图标,甚至在标题栏中键入地址,就像在本地文件系统上一样:C:\Users…\etc),还是实际运行的本地服务器正在尝试生成输出?不,我没有尝试从文件系统打开mp3(尽管文件以这种方式在任何媒体播放器中都可以正常打开)。我有一个localhost服务器,上面的代码被称为firefox、chrome和ie的网页。您是否尝试过在每个文件类型上为source
使用不同的变量名?好主意。我将第二个源命名为source2,但得到了相同的结果。然后我将其完全删除(不需要ogg)但是得到了同样的结果。我添加了代码,完全消除了javascript。即使禁用了javascript,它仍然会冻结。这可能是编解码器的问题吗?