`
superwulei
  • 浏览: 107939 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Sound类的length和SoundChannel类的position之间的关系

阅读更多

写了一个例子用于验证length和position间的不匹配。

/**
 * 本例验证不能通过SoundChannel.position和Sound.length进行比较以判断音乐是否结束
 * */

package {
	import flash.display.Graphics;
	import flash.display.Sprite;
	import flash.events.MouseEvent;
	import flash.events.TimerEvent;
	import flash.media.Sound;
	import flash.media.SoundChannel;
	import flash.net.URLRequest;
	import flash.utils.Timer;

	public class _Sound extends Sprite
	{
		var _req:URLRequest;
		var _sound:Sound;
		var _channel:SoundChannel;
		
		var _rect:Sprite;
		
		var t:Timer;
		public function _Sound()
		{
			_req = new URLRequest("daoxiang.mp3");
			_sound = new Sound(_req);
			
			_rect = new Sprite();
			var g:Graphics = _rect.graphics;
			g.beginFill(0xcc0000);
			g.drawRect(0,0,100,100);
			
			this.addChild(_rect);
			_rect.x = (this.stage.stageWidth-_rect.width)/2;
			_rect.y =(this.stage.stageHeight-_rect.height)/2;
			_rect.addEventListener(MouseEvent.CLICK,onClick);
			
			t = new Timer(0);
			
			
		}
		
		private function onClick(e:MouseEvent):void{
			if(_channel==null){
				//从声音长度96%处开始播放,以减少测试时间
				_channel = _sound.play(_sound.length*.96);
				t.start();
				t.addEventListener(TimerEvent.TIMER,onProgress);
			}
		}
		
		private function onProgress(e:TimerEvent):void{
			if(_channel.position<_sound.length){
				trace(_channel.position+" / "+_sound.length);
				_rect.rotation+=5;
			}
		}
		
	}
}

 测试最终数据为:

223491.13378684808 / 223660.4081632653

由此可见,position总是小于length,无论任何时候!因此在播放过程中不能使用SoundChannel类对象.position<Sound类对象.length。

分享到:
评论

相关推荐

    AS 3.0 Sound类应用实例详解

    本文将深入探讨如何在AS 3.0中使用`Sound`类及其相关APIs进行音频加载、播放和控制,以增强用户互动性和体验。 #### 导入必需的类 要使用`Sound`类及其他相关音频处理类,首先需要在脚本中导入它们: ```...

    flex byteArray to sound

    总结起来,将ByteArray转换为Sound涉及了Flex的Sound和SoundChannel类,以及ByteArray的数据处理。这个过程包括创建Sound对象、加载数据、创建SoundChannel以及可能的音频解码步骤。在处理过程中,要确保正确地监听...

    我的音乐播放器

    在AS3中,音乐播放的核心是使用Sound类和SoundChannel类。Sound类用于加载和控制音频资源,而SoundChannel类则用于处理音频的播放、暂停、停止以及获取播放进度等操作。在创建音乐播放器时,首先需要通过URLLoader类...

    Flashas3控制mp3文件

    - 在Flash中创建一个电影剪辑元件作为进度条,根据`soundChannel.position`和`sound.length`(音频总长度)的比例来更新进度条的宽度。 - 添加事件监听器来实时更新进度条,例如`Event.ENTER_FRAME`。 6. **音乐...

    as3.0做的音乐播放器

    4. **进度条**:根据`SoundChannel.position`和`Sound.length`属性显示当前播放进度。 5. **歌曲切换**:加载新的`Sound`对象并开始播放。 6. **播放列表**:如果存在多个音乐文件,需要实现列表选择和播放功能,这...

    flash as3.0 音乐播放器引擎

    3. 多音轨管理:如果播放器支持播放多个音频,需要管理多个SoundChannel,确保它们之间的正确同步。 7. 性能优化:合理安排资源加载和释放,避免内存泄漏,确保播放器在各种设备上运行流畅。 总结,开发一个AS3.0...

    基于AS3.0的flash音乐播放器

    通过使用Flash的Sound类和SoundChannel类,开发者可以实现对音频流的精确控制。Sound类用于加载和控制音频文件,而SoundChannel类则用于跟踪音频播放状态,例如音量、当前播放位置等。 歌词显示功能是通过同步歌词...

    FLASH MP3播放器

    3. **播放、暂停和停止**: 实现这些功能需要使用Flash的Sound类和SoundChannel类。Sound类用于加载和处理音频,而SoundChannel类则用于控制播放状态,如播放、暂停和停止。 4. **上一首、下一首功能**: 这需要一个...

    as3.0实现的一个碰撞类小游戏

    AS3.0支持`Sound`和`SoundChannel`类来播放音频,而`Tween`类或第三方库如TweenMax可以帮助实现平滑的动画过渡效果。 最后,游戏的保存和加载机制也很重要。尽管AS3.0没有内置的持久化存储,但可以通过本地存储API...

    flash as3 mp3player类

    6. **控制音频**:`SoundChannel`对象提供了控制音频播放的方法,如`stop()`、`pause()`和`resume()`,以及获取当前播放位置(`position`属性)和音量控制(`volume`属性)。 7. **用户界面**:通常,我们会创建一...

    flex 音频播放器

    soundChannel.position = timeline.currentPosition; } ``` 调节音量大小则通过设置`SoundTransform`对象的`volume`属性来实现: ```actionscript var soundTransform:SoundTransform = new SoundTransform(); ...

    简易AS 3.0音乐播放器

    2. **播放、暂停、上一首、下一首切换**: 这些基本操作通过AS3.0中的Sound类和Event类实现。例如,可以创建一个Sound对象加载MP3文件,然后监听和处理Event.SOUND_COMPLETE事件来实现播放和暂停。上一首和下一首切换...

    本地播放器(ActionScript 3.0实现)

    - `Sound`类用于加载、播放和控制音频,而`Video`类则用于播放和显示视频流。 4. **加载媒体**: - 使用`Sound.load()`和`Video.attachVideo()`方法加载本地文件或URL中的媒体。 - 对于本地文件,可以使用`...

    显示声音波形的纯as脚本

    这个程序基于AS脚本,利用了Flash平台中的多个关键类,如Graphics、URLRequest、Sound、SoundChannel和SoundMixer,来实现动态绘制声音波形并播放音频。 首先,`Graphics`类是ActionScript中用于在舞台上绘制的基本...

    03.ActionScript 3.0音频编程pdf

    1. 类与对象:在AS3中,所有的音频操作都是基于类的,例如,`Sound`类用于处理音频数据,`SoundChannel`类用于控制音频播放。理解面向对象的概念对于音频编程至关重要。 2. 音频格式:AS3支持多种音频格式,如MP3、...

    actionscript3.0 横版跳跃类游戏源代码

    AS3.0的Sound类和SoundChannel类可以帮助播放和控制音频。 8. **物理引擎**:虽然简单的跳跃游戏可能不需要完整的物理引擎,但更复杂的游戏可能涉及到重力、摩擦力等物理特性。Flash中有如Papervision3D或Box2D这样...

    Flash AIR实例教程

    接着,我们需要导入一系列的Flash类库,包括`NativeMenu`、`NativeMenuItem`、`File`、`Sound`和`SoundChannel`等,这些类将用于构建菜单、处理文件选择和音频播放。 在`Main`类中,我们定义了几个关键变量,如`...

    AS3.0开发中常用语句汇总

    使用`Sound`和`SoundChannel`类处理音频。`snd.play()`播放音频,`channel.position`获取当前位置。要暂停,记录`pausePosition`,然后调用`channel.stop()`。重新播放时,使用`snd.play(pausePosition)`从暂停的...

    as3.0纯代码MP3播放器

    `flash.media.SoundChannel`类代表了正在播放的声音实例,提供了诸如控制播放位置、获取音量和样本数据等方法。我们可以通过它来控制音频的播放进度、暂停和停止。 5. **时间线控制**: 播放器通常需要实现进度条...

Global site tag (gtag.js) - Google Analytics