当前位置: 首页 > 知识库问答 >
问题:

Flash流音频问题:音频只能在帧变化时多次播放

邓嘉致
2023-03-14

好吧,事情是这样的:我在做一个智力竞赛游戏,我决定给它放一张配乐。它是一个单一的音频文件,我上传到我的自定义域,并通过代码流。我还添加了播放/暂停按钮,这样播放器就可以播放和暂停音乐。音乐在框架1上自动播放,我的游戏的“开始”按钮在那里。但是,如果玩家答错了一个问题,他会回到第一帧。问题是音乐的另一个“实例”开始播放,导致两个音乐在同一时间播放。如果他再答错,就会有三首音乐回放,以此类推....我需要某种事件监听器来防止这种情况发生...正如你所看到的,我已经尝试使用布尔方法,但它不起作用······以下是我用于流媒体的代码:

var mySound:Sound = new Sound();
var myChannel:SoundChannel = new SoundChannel();
var lastPosition:Number = 0;// pause button
mySound.load(new URLRequest("http://trollfacequiz.16mb.com/MusicFiles/Goat%20Songs.mp3"));
var soundIsPlaying:Boolean = false;
//mySound.play();
myChannel = mySound.play();

btn_mute.pause_btn.addEventListener(MouseEvent.CLICK, onClickPause);

function onClickPause(e:MouseEvent):void
{
    lastPosition = myChannel.position;
    myChannel.stop();
    soundIsPlaying = false;
}
btn_mute.play_btn.addEventListener(MouseEvent.CLICK, onClickPlay);

function onClickPlay(e:MouseEvent):void
{
    if (soundIsPlaying == false)
    {
        myChannel = mySound.play(lastPosition);
        soundIsPlaying = true;
    }
}

btn_mute是同时包含播放和暂停按钮的电影剪辑符号。btn_pause是暂停按钮。btn_play显然是播放按钮。暂停按钮在播放按钮的顶部,所以当它变得不可见时,它“变成”播放按钮...

共有1个答案

阎烨
2023-03-14

我认为主要问题在于代码结构和将代码放在帧中,解决这个问题的最短方法是使用SoundMixer.Stopall();

var mySound:Sound = new Sound();
var myChannel:SoundChannel = new SoundChannel();
var lastPosition:Number = 0;// pause button
mySound.load(new URLRequest("http://trollfacequiz.16mb.com/MusicFiles/Goat%20Songs.mp3"));
var soundIsPlaying:Boolean = false;
//mySound.play();
SoundMixer.stopAll();
myChannel = mySound.play();

btn_mute.pause_btn.addEventListener(MouseEvent.CLICK, onClickPause);

function onClickPause(e:MouseEvent):void
{
    lastPosition = myChannel.position;
    myChannel.stop();
    soundIsPlaying = false;
}
btn_mute.play_btn.addEventListener(MouseEvent.CLICK, onClickPlay);

function onClickPlay(e:MouseEvent):void
{
    if (soundIsPlaying == false)
    {
        myChannel = mySound.play(lastPosition);
        soundIsPlaying = true;
    }
}
 类似资料:
  • 我试着用两种语言播放一部电影。音频1至扬声器音频2至耳机 播放视频并混合音频1 用audio1播放视频 仅播放音频2 如何结合这一点?

  • 问一下Xamarin.Forms便携里面Xamarin.Forms的音频怎么播放 正如我所知,有依赖服务,我看到了一些示例,只有iOS和Android,但没有Windows Phone 8.1/Windows 8.1和UWP。

  • 音频的加载方式请参考:声音资源 使用 AudioSource 组件播放 在 层级管理器 上创建一个空节点 选中空节点,在 属性检查器 最下方点击 添加组件 -> 其他组件 -> AudioSource 来添加 AudioSource 组件 将 资源管理器 中所需的音频资源拖拽到 AudioSource 组件的 Clip 中,如下所示: 然后根据需要对 AudioSource 组件的其他参数项进行设

  • 我使用音频流在设备上播放MP3文件,在ICS问世之前没有任何问题。然后我认为这可能是一个格式支持问题,因此我尝试使用以下代码创建OGG文件: 这在早期的操作系统版本上有效,但在集成电路上失败。我还尝试过使用onPreparesListener atc使用创建媒体播放器,但仍然出现相同的错误: 所以我的问题是如何在ICS上使用MediaPlayer流式传输音频文件?是否有人有工作代码,或者可能有一些

  • 问题内容: 我正在另一台PC上实现从MIC到Java服务器的实时流传输。但是我只听到白噪声。 我已经附上了客户端程序和服务器程序 并且服务器端没有问题。它与android客户端AudioRecord完美运行。 问题答案: 因此,我用正弦波(或某种在某种意义上类似正弦波的东西)填充了麦克风,并且您的程序运行正常。 因此,我的具体更改是: 显然,我将其误解为一个512字节长的片段,并破坏了正弦波,但事

  • 我在带有的游戏中播放音效(WAV文件)。但是,有2秒的效果并没有完全播放,只是其中的一部分。如果我添加,那么声音会正确播放多次,即整个2秒。出了什么问题,如何修复?