Authoware中多音频流的实现
软件世界
在制作多媒体课件时,如果需要在同一时刻进行多段音乐播放,该如何在Authorware中实现呢?
如果在流程线上先后拖入两个声音图标,再分别导入需要播放的音乐,并将声音属性面板中的“Concurrency”(执行方式)选择为“Concurrent”(同时),然后执行程序,则会直接播放第二首音乐。这是因为在Authorware中声音的播放是通过MCI方式实现的,而MCI方式是独占声音设备的,也就是需要占用一定的硬件设备来播放,所以当有两首音乐同时播放就会出现冲突。
经过多次尝试,笔者找到了一个好方法。以制作古诗《春晓》课件为例(在欣赏古诗的时候要一边播放背景音乐一边播放朗读),向大家介绍这一实现方法。
一、准备工作
向大家介绍之前需要先说明一下,在Windows中的声音播放分为两类,一类是通过硬件设备播放的,如最常用的WAV等文件;另一类是通过软波表进行模拟来播放的,如最常用的Midi文件。知道了这些,我们就可以将需要播放的两首音乐使用“两种设备”来播放。
笔者先将背景音乐转换为Midi格式并保存为“bj.mid”,朗读声音仍然为WAV格式,并保存为“朗读.wav”。
二、实现过程
1.我们先在流程线上放入一个显示图标命名为课文内容,在里面输入《春晓》这首诗的内容。接下来在它的下面放入一个交互图标命名为Contorl,在它的右侧连续放入8个计算图标,分别命名为:朗读、暂停朗读、继续朗读、停止朗读、Midi、MidiPause、MidiContinue、MidiStop,选择交互方式为按钮交互。
2.我们需要用到一个外部函数A5WMME.U32(此函数可到Macromedia公司网站上去下载,http://www.macromedia.com)。点击快捷工具栏上的“Functions Window”(函数窗口)快捷工具,在Functions面板中的“Category”(分类)选项中选择“春晓.a6p”,再单击左下角的“Lood”按钮选择要加载的函数(这里我们选择A5WMME.U32)。这时弹出一个对话框,左侧有许多可以加载的函数。这里我们只需要其中的8个函数:MIDIPause()、MIDIPlay()、MIDIResume()、MIDIStop()、WavePause()、WavePlay()、WaveResume()、WaveStop(),将它们分别导入。
3.加载后双击朗读计算图标,在里面输入WavePlay(FileLocation^"朗读.wav",0),意思是播放“朗读.wav”这个声音文件,然后分别打开暂停朗读、继续朗读、停止朗读、Midi、MidiPause、MidiContinue、MidiStop计算图标,在里面分别输入WavePause()、WaveResume()、WaveStop()、MIDIPlay(FileLocation^"bj.mid",100,0)、MIDIPause()、MIDIResume()、MIDIStop()。
4.现在运行程序,会发现课件所需基本功能已初步实现了,但是在运行时所有按钮一直有效又显得不够专业。不过这个很容易实现,只需双击打开各个按钮响应属性对话框,在“Active If”(激活条件)框内输入激活条件,然后再在相应的计算图标中设定它的有效时间段就可以了(最终运行结果如(图1))。
