如何使用键盘事件通过 URLrequest 播放声音?

Posted

技术标签:

【中文标题】如何使用键盘事件通过 URLrequest 播放声音?【英文标题】:How do I use a keyboard event to play a sound using a URLrequest? 【发布时间】:2018-12-09 01:22:28 【问题描述】:

我有基本代码,我使用鼠标事件单击图标以获取具有流式广播开始和停止的 url,但我想让它成为键盘事件。我不知道该怎么做。我正在使用 adobe 动画。我知道如何使用 keyup/keydown 命令使符号消失,但我不知道如何分配键盘事件来代替鼠标事件。最终的结果是一个收音机,我可以在每个电台之间切换,按下键盘上分配的字母。这是我的代码:

button_1.addEventListener(MouseEvent.CLICK, fl_ClickToPlayStopSound_4);

var fl_SC_4:SoundChannel;


var fl_ToPlay_4:Boolean = true;

function fl_ClickToPlayStopSound_4(evt:MouseEvent):void

    if(fl_ToPlay_4)
    
        var s:Sound = new Sound(new URLRequest("http://64.71.79.181:5234/stream"));
        fl_SC_4 = s.play();
    
    else
    
        fl_SC_4.stop();
    
    fl_ToPlay_4 = !fl_ToPlay_4;

【问题讨论】:

【参考方案1】:

您需要在 stage 级别监听键盘事件(因为所有这些事件最终都会冒泡到 stage)。查找 Keyboard 类以获取关键代码参考。请记住,只有当 Flash 对象(例如在浏览器中)具有输入焦点(例如,您必须先单击它)时,键盘事件才会触发处理程序。

var SU:String;
var SA:Sound;
var SC:SoundChannel;

stage.addEventListener(KeyboardEvent.KEY_DOWN, onKey);

function onKey(e:KeyboardEvent):void

    // Use trace to get the actual key keycodes or charcodes.
    trace(e.keyCode, e.charCode);

    // After you have all the keys, you need to
    // associate keys with the audio streams.

    var audioURL:String;

    switch (e.keyCode)
    
        case Keyboard.A:
            audioURL = "audioa.mp3";
            break;

        case Keyboard.B:
            audioURL = "audiob.mp3";
            break;
    

    // Clean up previous audio.
    if (SC) SC.stop();
    if (SA) SA.close();

    SA = null;
    SC = null;

    // Toggle sound logic.
    if (SU == audioURL)
    
        SU = null;
    
    else
    
        SU = audioURL;
        SA = new Sound(new URLRequest(SU));
        SC = SA.play();
    

【讨论】:

@Eagon 不,不是。我刚查了一下,google > as3 handling keyboard 充满了完全相关的例子,从第一个结果开始。

以上是关于如何使用键盘事件通过 URLrequest 播放声音?的主要内容,如果未能解决你的问题,请参考以下文章

在文本框 (C#) 中使用 ctrl+A 时播放 Windows“叮”声

如何将事件监听器添加到tone.js中正在播放的音符中

如何制作和播放程序生成的啁啾声

如何在 QT 虚拟键盘上按下信号键并播放声音点击轨道?

如何用js或jquery实现点击事件触发键盘

如何用js或jquery实现点击事件触发键盘