首页 > 设计 > WEB开发 > 正文

8.4.为音频文件创建进度搜索条

2023-08-02 23:09:23
字体:
来源:转载
供稿:网友
8.4.1. 问题
我需要为用户搜索MP3 文件的不同部分创建一个搜索控制条,和创建一个音量控制条来改变的MP3 播放的音量。
8.4.2. 解决办法
通过为声音的play 方法设置time 参数来从时间点开始播放声音。这样创建一个新的SoundTransform 对象将作为SoundChannel 的soundTransform。
8.4.3. 讨论
声音的play 方法接受一个开始点的参数:
+展开
-ActionScript
public function play(startTime:Number = 0, loops:int = 0, sndTransform: SoundTransform= null):SoundChannel

这创建了一个新的SoundChannel 对象来播放你停止播放和监测声音的对象返回得声音。(要控制音量,平移,平衡,访问分配到SoundChannel 的SoundTransform 对象。)

要控制音量的声音,传递SoundTransform 对象到SoundChannel。我们创建一个新的有需要的值得SoundTransform 对象,并且传递到正在播放的SoundChannel。
+展开
-ActionScript
var trans:SoundTransform = new SoundTransform(volumeSlider.value);
chan.soundTransform = trans;

SoundTransform 类接受下列参数:
+展开
-ActionScript
SoundTransform(vol:Number = 1, panning:Number = 0)

该平移值范围从-1.0 ,表示全部向左平移(没有声音从右侧喇叭播放)至1.0 ,表示全部向右平移。全部代码在下面:
+展开
-XML
<mx:VBox xmlns:mx="http://www.adobe.com/2006/mxmlwidth="400height="300creationComplete="loadSound()">
<mx:Script>
<![CDATA[
private var sound:Sound;
private var chan:SoundChannel;
private function loadSound():void {
sound = new Sound(
new URLRequest("http://localhost:3001/Plans.mp3"));
chan = sound.play();
}
private function scanPosition():void {
chan.stop();
//divide by 10 because the Slider values go from 0 -
10 and we want a value between 0 - 1.0
chan = sound.play(positionSlider.value/10 *
sound.length);
}
private function scanVolume():void
{
var trans:SoundTransform =
new SoundTransform(volumeSlider.value,
(panSlider.value - 5)/10);
chan.soundTransform = trans;
}

]]>
</mx:Script>
<mx:Label text="Position"/>
<mx:HSlider change="scanPosition()id="positionSlider"/>
<mx:Label text="Volume"/>
<mx:HSlider change="scanVolume()id="volumeSlider"/>
<mx:Label text="Pan"/>
<mx:HSlider change="scanVolume()id="panSlider"/>
</mx:VBox>
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表