在 Javascript 对象中使用 HTML5 音频
Using HTML5 Audio in Javascript Objects
>当我运行以下内容时...
var obj = {
array: ['1.mp3', '2.mp3', '3.mp3'],
audio: new Audio(this.array[0])
};
。我收到一个错误,说它无法读取未定义的属性"0"。但是,当我运行以下内容时...
var obj = {
array: ['1.mp3', '2.mp3', '3.mp3'],
};
var audio = new Audio(this.obj.array[0]);
。一切都很顺利。我将如何修复第一个示例?我做错了什么this
吗?
我将如何修复第一个示例?我对
this
做错了什么吗?
你不能。对象尚未创建,因此无法使用this
引用该属性
但是,您可以这样做
var obj = {
array: ['1.mp3', '2.mp3', '3.mp3'],
}; // object now created
obj.audio = new Audio(this.obj.array[0]); // set the property.
请注意,您可以引用this
来引用函数内部的obj
,但不能引用函数外部的。
var obj = {
prop: (console.log(this), "Some value") // most probably Window but never obj
func: function(){
console.log(this); // obj
}
}
问题是在构造函数中使用this
:它不是指obj
,而是指新的 Audio 对象。您将无法像这样使用对象内部的this
引用它。
执行相同操作的另一种方法如下:
var refArray = ['1.mp3', '2.mp3', '3.mp3'];
var myObj = {
array: ['1.mp3', '2.mp3', '3.mp3'],
audio: new Audio(this.obj.array[0]);
};
这与其他答案中所述的操作相同,但允许您在定义 myObj 变量时添加音频对象(作为 myObj 的属性(。
相关文章:
- HTML5音频加载和播放获胜'我不能在iPad上工作
- 未能加载,因为找不到支持的源.当播放HTML5音频元素时
- 动态加载的自定义javascript/jQuery/HTML5音频播放器的问题
- Html5音频时间更新精度
- HTML5音频如何防止浏览器麦克风拾取所有声音
- Javascript::通过HTML5音频播放器播放列表播放多个音频文件
- HTML5音频循环出现问题
- 如果src设置为静态,则会播放html5音频,但如果设置为动态,则不会播放
- Shoutcast流url在html5音频标签中不起作用
- Phonegap-Android 4.4-html5音频长度错误(javascript和媒体插件)
- HTML5音频没有方法播放
- 如何在角度过滤器内返回 html5 音频/视频作为输出
- 使用 Javascript 循环播放 HTML5 音频
- HTML5音频播放器只有在双击后才能在移动浏览器上播放
- JavaScript/HTML5音频:在Android Chrome中播放用户通过文件选择器加载的mp3文件
- 为什么我的代码使用javascript与html5音频播放器可以'Don’我不能做两个或两个以上
- 如何重复html5音频
- HTML5 音频进度条长度
- HTML5音频标签,其中可以下载
- 使用Javascript为HTML5音频添加循环