- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
以下代码在 IE9+(以及 Firefox 和 Chrome)中播放声音。是否有一个库可以为 IE8 实现/填充缺失的功能(audio
元素和 play()
方法)?
我做不到mediaelement.js
工作,并使用 jQuery 或放置 <object>
里面<audio>
看起来很丑。一些全局初始化(比如 shim.init(somepath)
)让 shim 找到它的 flash 文件是好的,但我认为每个标签的代码看起来不对,因为它应该可以自动化。
<!DOCTYPE HTML>
<html>
<head>
<script type="text/javascript">
function foo()
{
var audio = document.getElementById('foo')
audio.play()
}
</script>
</head>
<body>
<audio id="foo" preload="none">
<source src="foo.mp3" type="audio/mpeg">
<source src="foo.ogg" type="audio/ogg">
Your browser does not support the audio element.
</audio>
<button onclick="foo()">Play</button>
</body>
</html>
最佳答案
你可以使 MEJS 工作而不需要额外的库(除了 jQuery)或 IE[7-8] 中的 polyfills,也不需要在 audio
标签中添加 object
标签.
解决方法是在 success
设置中创建一个 global 对象,IE 可以在使用 .play()
之前使用它( ... 或 .pause()
) 方法
所以,有了这个简单的 html
<audio id="myAudioPlayer" src="media/audio.mp3" preload="none"></audio>
<button onclick="audioPlay();">Play</button>
<button onclick="audioPause();">Pause</button> <!-- optional -->
你可以使用这段代码:
var audio; // global object to be used by IE (and all browsers as a matter of fact)
var isPlaying = false; // flag for event listeners
function audioPlay() {
// only call play() method if audio is not playing
// avoids multiple playbacks in IE
if (!isPlaying) {
audio.play();
isPlaying = true;
}
};
function audioPause() {
// only call pause() method if audio is playing
if (isPlaying) {
audio.pause();
isPlaying = false;
}
};
jQuery(document).ready(function ($) {
var player = new MediaElementPlayer("#myAudioPlayer", {
success: function (mediaElement, domObject) {
audio = mediaElement; // set value to global object to be used outside the success setting by IE
// event listeners so we only call our functions when needed
audio.addEventListener('playing', function () {
isPlaying = true;
}, false);
audio.addEventListener('pause', function () {
isPlaying = false;
}, false);
}
});
}); // ready
注意我们添加了几个事件监听器,因此我们只在需要时调用我们的方法(并避免在 IE 中多次播放)
参见 JSFIDDLE
注意
此代码用于 audio
元素。 Video
元素可能需要其他解决方法。
关于javascript - IE8 HTMLMediaElement play() 垫片,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23990870/
我正在尝试使用 Intern 测试 Require.js 项目。我在测试中遇到错误,其中在加载 jQuery 插件时未定义 jQuery。我的加载器配置如下所示: loader: { // A
还没有很多浏览器支持 WebRTC,但是有很多很酷的 WebRTC 东西可以玩——PeerDB 等。 是否有任何类型的 shim 用于在浏览器中欺骗 WebRTC API(这样 PeerDB 之类的东
我是堆栈 overflow 的新手。 :-) 如何创建一个自动改变高度的 div 来填满所有空间?我试过 高度:“自动” 但不起作用... :( 例如: ... The height
Windows 能够应用 shims to mis-behaving applications .垫片用于拦截 API 调用并更改它。例如,垫片可用于: 修改传入参数 谎报返回值 改成别的名字 App
以下代码在 IE9+(以及 Firefox 和 Chrome)中播放声音。是否有一个库可以为 IE8 实现/填充缺失的功能(audio 元素和 play() 方法)? 我做不到mediaelement
我有以下指向 backbone.d.ts 定义的内容。 import Backbone = module("../../../dep/backbone/backbone"); export class
我们通常会检查 jQuery 是否从 CDN 加载,如果没有则回退到本地版本。 window.jQuery || document.write('') 我正在使用 twitter bootstrap
我有一些 qunit 测试设置来测试我广泛使用 requirejs 的代码。我使用 Chutzpah 来执行在 VS 中运行的测试。如果我在浏览器中运行测试而不是仅在 VS 中运行测试,则一切正常。它
我正在为 ECMAScript Internationalization API 寻找垫片.有人知道这样的项目吗? (即使它目前仍在进行中。) 最佳答案 是的,有一个适用于 ECMA-402 的 po
我已经使用 Cordova 创建了一个 Web 应用程序,我需要在后台显示实时摄像头流。 Cordova 的相机/视频 API 似乎只是打开 native 相机/视频应用程序,而不是返回实时相机数据。
我正在尝试关注 this example并利用 shim 删除对 WCF 服务调用的外部依赖,该服务调用是从我正在执行单元测试的方法中调用的。与示例不同,我使用类似于以下的代码即时生成我的 WCF 客
我的服务器运行的是 PHP 5.2。是否有一组垫片以便我可以在 PHP 5.2 中至少使用 PHP 5.3 的一些新功能?喜欢: 最佳答案 我记不起 5.3 和 5.4 带来的所有功能,但简短的回答
如何为 C 库编写自定义 Emscripten 垫片? Emscripten 为某些 C 库(例如 SDL 和 OpenAL)捆绑了垫片,但对于其他库,您将不得不自己动手。 我所说的 shim 是指要
Internet Explorer 没有实现 ArrayBuffer.prototype.slice .令人惊讶的是,他们 don't plan on implementing it any time
我在 Dart 中有 Angular2 应用程序(如此处 - https://angular.io/docs/dart/latest/quickstart.html )并从那里调用 javascrip
这个问题在这里已经有了答案: What is TypeScript and why would I use it in place of JavaScript? [closed] (5 个答案) 关
我有以下代码: requirejs.config({ shim: { 'underscore': { exports: '_' },
Internet Explorer 不支持“const”关键字。我可以使用垫片来检查是否支持“const”,如果不支持,则将其重新定义为 var 吗?我想如果它能强制保持恒定性就好了,也许可以使用 o
所以我使用 background-size:cover 来实现背景图像的预期效果,该背景图像可以缩放到它所应用的任何 div 大小,同时保持纵横比。为什么要使用这种方法?根据相关 WordPress
我是一名优秀的程序员,十分优秀!