简体   繁体   English

视频SWF通过mysql数据库中的php和actionscript加载文件

[英]video swf loading files through php and actionscript from mysql database

I am trying to create a video that loads the videos stred in a directory, depenant on the users id etc. 我正在尝试创建一个视频,该视频加载目录中的stred视频,用户ID上的depenant等。

To do this, I am using php. 为此,我正在使用php。 However, I cannot then get the php to convert to xml within the actionscript: 但是,我然后无法在动作脚本中将php转换为xml:

Here is php code: 这是PHP代码:

$query = "SELECT * FROM video_files ORDER BY video_id DESC"; 
$resultID = mysql_query($query) or die("Data not found."); 

$xml_output = "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n"; 
$xml_output .= "<PLAYLIST VIDEO_X=\"0\" VIDEO_Y=\"0\" >\n"; 

for($x = 0 ; $x < mysql_num_rows($resultID) ; $x++){ 
    $row = mysql_fetch_assoc($resultID); 
    $xml_output .= "<VIDEO TITLE=\"".$row['title']."\" THUMB=\"\" URL=\"".$row['path']."\"/>\n"; 
} 

$xml_output .= "</PLAYLIST>"; 

echo $xml_output;

here is actionscript: 这是动作脚本:

import fl.video.*;

var thumb_width:Number;
var thumb_height:Number;
var thumbs_x:Number;
var thumbs_y:Number;
var video_x:Number;
var video_y:Number;
var my_videos:XMLList;
var my_total:Number;

var main_container:Sprite;
var thumbs:Sprite;
var titles:Sprite;
var my_player:FLVPlayback;

var myXMLLoader:URLLoader = new URLLoader();
myXMLLoader.load (new URLRequest("playlist.php"));
myXMLLoader.addEventListener (Event.COMPLETE, processXML);

function processXML (e:Event):void {
    var myXML:XML = new XML(e.target.data);

    thumb_width = myXML.@THUMB_WIDTH;
    thumb_height = myXML.@THUMB_HEIGHT;
    thumbs_x = myXML.@THUMBS_X;
    thumbs_y = myXML.@THUMBS_Y;
    video_x = myXML.@VIDEO_X;
    video_y = myXML.@VIDEO_Y;
    my_videos = myXML.VIDEO;
    my_total = my_videos.length();

    makeContainers ();
    callThumbs ();
    makePlayer ();
}

function makeContainers ():void {
    main_container = new Sprite();
    addChild (main_container);

    thumbs = new Sprite();
    thumbs.addEventListener (MouseEvent.CLICK, playVideo);
    thumbs.addEventListener (MouseEvent.MOUSE_OVER, onOver);
    thumbs.addEventListener (MouseEvent.MOUSE_OUT, onOut);
    thumbs.x = thumbs_x;
    thumbs.y = thumbs_y;
    thumbs.buttonMode = true;
    main_container.addChild (thumbs);

    titles = new Sprite();
    titles.x = thumbs_x;
    titles.y = thumbs_y;
    main_container.addChild (titles);
}

function callThumbs ():void {
    for (var i:Number = 0; i < my_total; i++) {

        var thumb_url = my_videos[i].@THUMB;
        var thumb_loader = new Loader();
        thumb_loader.name = i;
        thumb_loader.load (new URLRequest(thumb_url));
        thumb_loader.contentLoaderInfo.addEventListener (Event.COMPLETE, thumbLoaded);
        thumb_loader.y = (thumb_height+10)*i;

        var thumb_title = my_videos[i].@TITLE;
        var title_txt:TextField = new TextField();
        title_txt.text = thumb_title;
        title_txt.y = thumb_loader.y;
        title_txt.x = thumb_width + 10;
        title_txt.width = thumb_width;
        title_txt.height = thumb_height;
        title_txt.wordWrap = true;
        titles.addChild (title_txt);


    }
}

function thumbLoaded (e:Event):void {
    var my_thumb:Loader = Loader(e.target.loader);
    thumbs.addChild (my_thumb);
}

function makePlayer ():void {
    my_player = new FLVPlayback();
    my_player.skin ="videos/videoskin.swf";
    my_player.skinBackgroundColor = 0xAEBEFB;
    my_player.skinBackgroundAlpha = 0.9;

    my_player.x = video_x;
    my_player.y = video_y;
    my_player.width = 500;
    my_player.height = 400;

    main_container.addChild (my_player);
    my_player.source = my_videos[0].@URL;
}

function playVideo (e:MouseEvent):void {
    var video_url = my_videos[e.target.name].@URL;
    my_player.source = video_url;
}

function onOver (e:MouseEvent):void {
    var my_thumb:Loader = Loader(e.target);
    my_thumb.alpha = 0.5;
}
function onOut (e:MouseEvent):void {
    var my_thumb:Loader = Loader (e.target);
    my_thumb.alpha = 1;
}

anyone know where i am going wrong? 有人知道我要去哪里错吗? It works with a normal xml file just not php 它与普通的xml文件一起工作,而不是php

The format for your XML output in PHP is wrong. PHP中XML输出的格式错误。 Every tag must be closed. 每个标签都必须关闭。

You have: 你有:

<?xml version="1.0" encoding="utf-8"?>
<PLAYLIST VIDEO_X="0" VIDEO_Y="0">
<VIDEO TITLE="videotitle" THUMB="thumbnail" URL="URL" />
</PLAYLIST>

You need to close the video tag. 您需要关闭视频标签。 So output should look like this: 因此输出应如下所示:

<?xml version="1.0" encoding="utf-8"?>
<PLAYLIST VIDEO_X="0" VIDEO_Y="0">
<VIDEO TITLE="videotitle" THUMB="thumbnail" URL="URL"></VIDEO>
</PLAYLIST>

You should also set the content-type for your PHP script. 您还应该为PHP脚本设置co​​ntent-type。

header('Content-type: text/xml');  

I don't have access to my laptop to thoroughly test your code, but this is my answer from a first glance at your code. 我无权使用笔记本电脑来彻底测试您的代码,但这是我乍看您的代码所得到的答案。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM