0 0

js setInterval循环播放音乐,ie最小化后不播放的问题3

在页面中,有标签
<bgsound id="sound" name="sound" src=""  loop=1/>
在页面有一个定时循环的script,执行下面的逻辑
function play(){
   document.getElementById("sound").src = "<c:url value='/music/1.mp3'/>";
}
setInterval("play()",this.refreshTime);
--
问题是,当ie最小化后,就不会执行这个逻辑播放音乐了。
我的理解是,当页面最小化后,ie的时间即时是不是会暂停?

这个可以怎样处理呢,能达到在ie最小化后,也同样播放的效果。


问题补充:
只能在这里说么?没找到可以引用回答的呢?

---
atian25的
只能改用嵌入flash的方式来播放

因为播放的内容是和业务相关的,即
document.getElementById("sound").src = "<c:url value='/music/1.mp3'/>";
这个有时候播放1.mp3,有时候播放2.mp3

所以,即使用flash来播放,一定需要传递参数到flash中。这个逻辑怎样组织呢?
问题补充:
多谢atian25的回答

我现在的逻辑是通过setInterval("play()",this.refreshTime); 播放,且在播放前根据业务判断结果播放对应的mp3.

即,我理解的问题是,假如setInterval中的play都不执行了?那即使用
soundSwf.playSound(soundUrl,2); 
也不能播放吧?这个时候没有调用者了。

--
是否这样可以,将setInterval的循环放到flash中,即使用flash作为一个调用者。
在ie被最小化后,flash中的定时循环还在继续。在flash的循环中,调用js,查询相应的逻辑结果,并将对应的应该播放的mp3文件名返回。
此时,再在flash中播放??


问题补充:
这个问题的关键是用bgsound,

1.只是ie only
2.看名字理解,就是bg's sound,你都最小化了,当然没得了.
--
这个是说明白了。

刚查了下,

使用< embed>标签
它的使用方法与第一种基本一样,只是第一步的代码提示框里不要选择gbsound,改而选择embed即可。然后再选择它的属性进行相应的设置

似乎使用embed也能达到效果??
问题补充:
刚最新测试了下,发现
bgsound在ie7下面不存在最小化后不能播放的问题。ie6存在
2009年8月05日 11:28

5个答案 按时间排序 按投票排序

0 0
2009年8月05日 17:11
0 0

非ie浏览器似乎对embed支持不好

2009年8月05日 12:58
0 0

逻辑端在js还是as都无所谓.

这个问题的关键是用bgsound,

1.只是ie only
2.看名字理解,就是bg's sound,你都最小化了,当然没得了.

所以要通过swf来播放声音.

至于是js来轮询还是as,都随便

2009年8月05日 12:27
0 0

js和as是可以通信的嘛...

摘抄部分以前的代码:

var soundUrl = alarmCount>0 ? 'alarm.mp3' : 'event.mp3';
soundSwf.playSound(soundUrl,2);



//SoundSwf.as
package {
	import flash.display.*;
	import flash.events.*;
	import flash.media.Sound;
	import flash.net.URLRequest;
	import flash.external.ExternalInterface;
	import flash.utils.*;
	
	public class SoundSwf extends Sprite{
                //from aswing's lib
		private var map:HashMap = new HashMap();
		public function SoundSwf():void{
			if (ExternalInterface.available){
				ExternalInterface.addCallback("playSound", this.playSound);
			}
		}
		public function playSound(url:String,count:int):void{
			var s:Sound;
			if(!map.containsKey(url)){
				s = new Sound();
				map.put(url,s);
				s.addEventListener(Event.COMPLETE,function(e:Event):void{
    				var localSound:Sound = e.target as Sound;
    				localSound.play(0,count);
				});
				s.addEventListener(IOErrorEvent.IO_ERROR, function(e:IOErrorEvent):void{ExternalInterface.call("alert", e);});
				s.load(new URLRequest(url));
			}else{
				s = map.get(url) as Sound;
				s.play(0,count);
			}
		}
	}
}

2009年8月05日 12:08
0 0

只能改用嵌入flash的方式来播放

2009年8月05日 11:40

相关推荐

    关于JS定时器(setTimeout setInterval)定时不准问题1

    setInterval函数用于在指定的延迟时间后循环执行一个函数,直到它被取消。 浏览器中的执行机制 在浏览器中,所有的JavaScript代码都是在单线程上执行的。因此,异步事件(比如鼠标点击和定时器)仅在线程空闲时才...

    Js封装的横向多图导航循环播放代码

    【标题】:“Js封装的横向多图导航循环播放代码”涉及到的是JavaScript编程中的一种常见应用场景,即使用JS实现一个能够自动、循环展示多张图片的水平导航栏。这种功能广泛应用于网站的轮播图或者产品展示区域,可以...

    setInterval 引起的性能问题

    然而,如果不正确地使用,`setInterval`可能导致各种性能问题。这篇博客文章“setInterval引起的性能问题”探讨了这些问题以及如何避免它们。 首先,`setInterval`的定时并不精确。它并不是在指定间隔的精确时间点...

    JavaScript控制多张图片循环播放(淡入淡出效果)

    在JavaScript编程中,实现多张图片的循环播放并带有淡入淡出效果是一项常见的动态效果需求,这在网页设计和用户体验提升中具有重要意义。本文将详细介绍如何利用JavaScript实现这一功能,以及涉及到的相关知识点。 ...

    js动画循环播放.rar

    【标题】"js动画循环播放.rar"所涉及的知识点主要集中在JavaScript、jQuery和CSS特效上,这三者是创建网页动态效果的关键技术。JavaScript是一种广泛用于网页和网络应用的脚本语言,它允许用户与页面进行交互并实现...

    Javascript中, setTimeout() 和 setInterval() 的方法

    在JavaScript编程中,`setTimeout()`和`setInterval()`是两个非常关键的函数,它们用于实现异步编程,特别是在处理动画、定时任务或者延迟执行代码时不可或缺。这两个函数都是全局对象`window`的方法,它们的区别...

    循环播放图片_不可以选择是第几张

    在标题和描述中提到的"循环播放图片_不可以选择是第几张",意味着设计或实现了一个图片轮播功能,但用户无法手动选择或跳转到特定的图片,只能按照预设的顺序自动播放。 在JavaScript中,我们可以使用多种方法来...

    C# ASP.NET 模块 - 循环播放广告

    在本文中,我们将深入探讨如何在C# ASP.NET环境中实现一个循环播放的广告模块,该模块结合了Flash和JavaScript技术。循环广告是网站上常见的一种动态展示广告的方式,它可以吸引用户的注意力并提高广告的曝光率。...

    循环播放广告功能概述 672

    根据提供的文件信息,我们可以归纳和扩展出以下几个与“循环播放广告功能”相关的IT知识点: ### 1. **AJAX(Asynchronous JavaScript and XML)技术详解** #### 1.1 AJAX的基本概念 AJAX是一种用于创建快速动态...

    文本框内文字循环播放

    1. **JavaScript/jQuery**:在网页开发中,可以利用JavaScript的setTimeout或setInterval函数来周期性地改变文本框的innerHTML属性,实现文本的循环播放。jQuery库可以简化DOM操作,使得代码更简洁。 2. **C#/.NET*...

    全屏广告图片的循环播放

    接下来,我们编写JavaScript代码(如`ad-slider.js`)来实现广告图片的循环播放。在这个例子中,我们将使用jQuery来选择元素、设置动画效果和定时器来切换图片: ```javascript $(document).ready(function() { ...

    setInterval

    在JavaScript中,`...了解这些基本概念和注意事项后,你可以更有效地利用`setInterval`来实现各种定时任务,同时避免潜在的问题。在实际开发中,要根据需求合理选择和使用定时器,确保应用的性能和用户体验。

    JS最简单的滚动新闻,兼容IE6及其他主流浏览器

    总的来说,这个JS滚动新闻的实现展示了如何使用JavaScript和HTML5来创建一个跨浏览器的动态效果,同时考虑了向后兼容性,特别是对于老版本的IE6。对于初学者和有经验的开发者来说,都是一个很好的学习案例,可以帮助...

    Javascript定时器(二)——setTimeout与setInterval

    JavaScript定时器是编程中不可或缺的一部分,它们允许我们延迟执行代码或定期执行代码。在这个主题中,我们将深入探讨`setTimeout`和`setInterval`这两个核心定时器函数,它们在JavaScript中的应用以及它们之间的...

    setInterval阻塞解决方案完整代码

    前端开发中,我们会会经常使用定时器setinterval setTimeout等,但当我们离开页面时,定时器会被阻塞,导致我们再回到页面的时候定时任务会混乱运行,为些我的解决方案写了个简单demo,希望对你有所帮助

    setInterval计时器不准的问题解决方法

    JavaScript中的`setInterval`函数常用于创建定时任务,如倒计时或周期性更新,但其存在一个显著的问题,那就是计时不准确。这是因为JavaScript引擎是非阻塞的,当`setInterval`设定的回调函数被调用时,它并不会立即...

    Js动画效果-setInterval(function,time)的主要应用

    虽然`setInterval()`很强大,但过度使用或者不恰当的设置时间间隔可能导致性能问题。因为JavaScript是单线程的,如果定时器过于频繁,可能会阻塞主线程,影响用户体验。因此,通常建议将时间间隔设置得足够大,或者...

    h5+css+js音乐播放器

    其中,利用H5、CSS和JavaScript(JS)来开发音乐播放器是一个常见的实践,它使得用户可以直接在网页上享受音乐而无需额外的插件或应用程序。本文将深入探讨如何利用这些技术实现一个基础的音乐播放器。 一、...

    flash 3D旋转木马图片自动循环播放代码

    同时,可以通过`setTimeout()`或`setInterval()`函数设置定时器,使旋转木马按照预设的时间间隔自动循环播放。 5. **图片加载和替换**:如果旋转木马包含多张图片,需要实现图片的加载和切换。可以使用`Loader`类...

    CSS3 translate实现轮播图丝滑般翻页,setInterval实现定时器等常见操作。

    在网页设计中,轮播图是一种常见的展示多张图片或内容的交互元素,它通过循环播放的方式呈现,常用于产品展示、广告宣传等场景。在本项目中,我们利用CSS3的`translate`属性和JavaScript的`setInterval`函数来实现一...

Global site tag (gtag.js) - Google Analytics