【问题标题】:Streaming audio into flash from php将音频从php流式传输到flash
【发布时间】:2012-05-30 13:56:49
【问题描述】:

嗨,我想知道是否有人可以帮我解决这个问题...我已经设法收集了一些关于如何从 Flash 调用 php 以流式传输 mp3 的信息,但是我不确定我如何流式传输数据从闪存。以下是我目前拥有的代码。

Flash

function onPlay(e:MouseEvent):void
{
    //Load file to play
    var req:URLRequest = new URLRequest("streamAudio.php");
    var urlData:URLVariables = new URLVariables();
    urlData.id = id;
    req.data = urlData;

    myMusic.load(req); //myMusic is a Sound object
    myChannel = myMusic.play(); //myChannel is a SoundChannel object

    btn_Play.visible = false;
    btn_Pause.visible = true;
}

PHP

<?php
$ID = $_GET["id"];

if ($ID != 0)
{
    //Code to fetch URL from DB

    $url = $row["url"];
    $file = "/" . $url;

    if(file_exists($file))
    {
        header("Content-type: audio/mpeg, audio/x-mpeg, audio/x-mpeg-3, audio/mpeg3");
        header("Content-Length: " . filesize($file));
        header("Expires: -1");
        header("Cache-Control: no-store, no-cache, must-revalidate");
        header("Cache-Control: post-check=0, pre-check=0", false);

        readfile($file);
    }

    //Close DB
}

感谢所有帮助。提前致谢!!

编辑

修改了代码。如果现在直接测试,PHP 脚本可以工作。

【问题讨论】:

    标签: php flash audio-streaming


    【解决方案1】:

    我不知道你为什么要这么做……你应该可以很简单地播放音频:

    s = new Sound();
    s.loadSound("http://someserver/yourscript.php", true);
    

    这当然假设您的 PHP 脚本首先可以工作。请注意,在许多情况下,您无法在下载远程资源之前获取它的文件大小。首先通过直接点击来测试您的 PHP 脚本。

    【讨论】:

    • 我已根据您的回复更新了代码,并在直接访问时使 PHP 文件正常工作,但是当与 flash 一起使用时,它不会播放音频。有什么想法我可能做错了吗?非常感谢!
    • 嗯,该代码对我有用。我建议只用这段代码制作一部非常简单的电影,然后从那里开始。还可以尝试使用 Fiddler 或 Wireshark 来确保 Flash 在您的服务器上请求正确的资源。
    • 非常感谢您的帮助!使用 Fiddler 我意识到我的 flash 从未调用过 php 脚本,原因是我在声明我的 Sound 对象时忘记设置它。 :)
    猜你喜欢
    • 2012-08-23
    • 2014-08-12
    • 2016-01-26
    • 2019-10-29
    • 1970-01-01
    • 2010-10-23
    • 1970-01-01
    • 2013-05-11
    • 2015-11-22
    相关资源
    最近更新 更多