Загрузка видео с локального сервера через путь к файлу, а не через URL - PullRequest
0 голосов
/ 22 марта 2011

Я пишу видеоплеер на основе Flash, который просто воспроизводит FLV-видео. Имя файла передается через flashvar.

В настоящее время это достигается с помощью следующей функции:

function loadVideo():void {
    var myVideo:FLVPlayback = new FLVPlayback();
    myVideo.align = VideoAlign.CENTER;
    myVideo.autoPlay = false;
    myVideo.skin = root.loaderInfo.parameters.skin;
    myVideo.skinAutoHide = true;
    myVideo.skinBackgroundColor = 0x00749E;
    myVideo.source = videosDirectory + root.loaderInfo.parameters.filename;
    myVideo.width  = stage.stageWidth;   // make scalable!
    myVideo.height = stage.stageHeight;  // make scalable!
    myVideo.x = myVideo.y = 0;
    stage.addChild(myVideo);
}

Видео захватывается, а затем добавляется на сцену, с обложкой игрока.

Однако я хочу загрузить видео из файловой системы (того же сервера, на котором развернут SWF), а не извлечь видео из URL. Читая документацию по свойству source, вы узнаете, что оно будет принимать только URL.

Причина, по которой я хочу прочитать из файловой системы, заключается в том, что эти видео будут храниться вне корня сервера. Например, стандартная настройка Apache:

public_ftp/ 
public_html/ 
    assets/ 
        swf/ 
videos/ 

SWF будет развернут на /assets/swf/, но затем я хочу извлечь видео из каталога /videos/.

Возможно ли это? Должен ли я использовать альтернативное решение, отличное от FLVPlayback компонента Flash? Я ни в коем случае не опытный разработчик Flash / ActionScript, поэтому простые, защищенные от идиота ответы были бы хорошими.

Заранее спасибо.

Ответы [ 2 ]

0 голосов
/ 23 марта 2011

Вы можете получить каталог URL SWF, а затем добавить имя файла для создания абсолютного пути.

Пример:

function getDirectory():String {    
    var url:String = this.loaderInfo.url;
    var urlPieces:Array = url.split("/");
    urlPieces.pop();
    urlPieces.push("");
    var directory:String = urlPieces.join("/");
    return directory;
}
0 голосов
/ 22 марта 2011

Это невозможно, если у вас нет доступа по HTTP или RTMP к одному из этих файлов.

SWF загружается клиентом, каждый запрос от SWF должен быть доступен от клиента. Просто задайте себе вопрос «Будет ли браузер иметь доступ к этому файлу?».

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...