Флеш аудио плеер

Статус
В этой теме нельзя размещать новые ответы.

z3rg

Мой дом здесь!
Регистрация
2 Фев 2007
Сообщения
732
Реакции
344
Помоите разобратся как вошнать плейлист в этот флеш плеер

или может есть чтото подобное, главное, пауза, перемотка, плей, стоп, и чтоб работал в потоке тоесть проигрывал по мере загрузки, а не так что сначала загрузит потом проигрываетю.
 
В приложении два файла конфигурации, и сам плеер
файл demoplaylist.xml
PHP:
<?xml version="1.0" encoding="ISO-8859-1"?>
<playlist> 
<element url="mp3/homeland.mp3"/>  //здесь пишешь ссылки к своим трекам
<element url="mp3/jazzalude.mp3"/> 
</playlist>
файл democonfiguration.xml
PHP:
<?xml version="1.0" encoding="ISO-8859-1"?>
<tsplayer>
	<skinoptions>
		<skin>tsps1.swf</skin>
		<playlist>1</playlist>
	</skinoptions>
	<functionality>
		<autoplay>1</autoplay>// авто проигрывание
		<volume>100</volume>// громкость 
		<repeat>1</repeat> // повторять плейлист или нет
		<shuffling>1</shuffling> // перемешать плейлист или нет
	</functionality>
</tsplayer>
и на всякий пожарный код :)
PHP:
function modifyStage()
{
    function goTo()
    {
        getURL("http://components.developers4web.com/mini-mp3-flash-player", "_blank");
    }
    var __reg2 = new ContextMenu();
    __reg2.hideBuiltInItems();
    __reg2.customItems.push(new ContextMenuItem("MiniPlayer Flash MP3 Player", goTo));
    _root.menu = __reg2;
    Stage.scaleMode = "noScale";
    Stage.align = "TL";
}
function configure(configurationFile)
{
    var __reg5 = new XML();
    __reg5.ignoreWhite = true;
    __reg5.onLoad = function (success)
    {
        if (success) 
        {
            var __reg3 = undefined;
            var __reg4 = 0;
            while (__reg4 < this.firstChild.childNodes.length) 
            {
                __reg3 = this.firstChild.childNodes[__reg4];
                if (__reg3.nodeType == 1) 
                {
                    if ((__reg0 = __reg3.nodeName.toLowerCase()) === "skinoptions") 
                    {
                        _root.readSkinoptions(__reg3);
                    }
                    else 
                    {
                        if (__reg0 === "functionality") 
                        {
                            _root.readFunctionality(__reg3);
                        }
                    }
                }
                ++__reg4;
            }
            _root.player = new TSPlayer(_level0.playlistfile);
            return;
        }
        mx.controls.Alert.show("Please check the XML configuration file structure", "Error");
    }
    ;
    __reg5.load(configurationFile);
}
function readFunctionality(node)
{
    var __reg2 = 0;
    for (;;) 
    {
        if (__reg2 >= node.childNodes.length) 
        {
            return;
        }
        if (node.childNodes[__reg2].nodeType == 1) 
        {
            if ((__reg0 = node.childNodes[__reg2].nodeName.toLowerCase()) === "autoplay") 
            {
                if (node.childNodes[__reg2].firstChild.nodeValue == 0) 
                {
                    _root.confAutoplay = false;
                }
            }
            else 
            {
                if (__reg0 === "volume") 
                {
                    if (!isNaN(Number(node.childNodes[__reg2].firstChild.nodeValue))) 
                    {
                        _root.volumeValue = Number(node.childNodes[__reg2].firstChild.nodeValue);
                    }
                }
                else 
                {
                    if (__reg0 === "repeat") 
                    {
                        if (node.childNodes[__reg2].firstChild.nodeValue == 0) 
                        {
                            _root.confRepeat = false;
                        }
                    }
                    else 
                    {
                        if (__reg0 === "shuffling") 
                        {
                            if (node.childNodes[__reg2].firstChild.nodeValue == 1) 
                            {
                                _root.confShuffling = true;
                            }
                        }
                    }
                }
            }
        }
        ++__reg2;
    }
}
function titleTextFieldFormat()
{
    _root.skinContainer.dataTxt.background = false;
    _root.skinContainer.dataTxt.border = false;
}
function scrollDataTxt()
{
    if (_root.skinContainer.dataTxt.hscroll == 0) 
    {
        _root.displacementhscroll = 1;
    }
    else 
    {
        if (_root.skinContainer.dataTxt.hscroll == _root.skinContainer.dataTxt.maxhscroll) 
        {
            _root.displacementhscroll = -1;
        }
    }
    _root.skinContainer.dataTxt.hscroll = _root.skinContainer.dataTxt.hscroll + _root.displacementhscroll;
    titleTextFieldFormat();
}
function showMusicData()
{
    var __reg3 = _root.player.getData();
    __reg3 = __reg3.toUpperCase();
    _root.writeInformationalPanel(__reg3);
    if (_root.skinContainer.dataTxt.maxhscroll > 0) 
    {
        if (_root.scrollIntervalId != undefined) 
        {
            clearInterval(_root.scrollIntervalId);
        }
        _root.scrollIntervalId = setInterval(this, "scrollDataTxt", 100);
    }
}
function writeInformationalPanel(information)
{
    _root.skinContainer.dataTxt.text = information;
    titleTextFieldFormat();
}
function btnDeactivateState()
{
    _root.skinContainer.playBtn.gotoAndStop("inactive");
    _root.skinContainer.pauseBtn.gotoAndStop("inactive");
    _root.skinContainer.stopBtn.gotoAndStop("inactive");
}
function clearTimerDisplay()
{
    _root.skinContainer.numTimer.timerText.text = "00:00";
    _root.skinContainer.numTimer.timerShadow.text = _root.skinContainer.numTimer.timerText.text;
}
function volumeEnter()
{
    _root.skinContainer.volumeControl.volumeControl_mask._x = _root.volumeValue * _root.skinContainer.volumeControl.volumeControlPath._width / 100 + _root.skinContainer.volumeControl.volumeControlPath._x - _root.skinContainer.volumeControl.volumeControl_mask._width;
}
function setDisplacement(duration)
{
    _root.displacement = (_root.skinContainer.displacementPath._width - _root.skinContainer.displacementBtn._width) / duration;
}
function resetDisplacement()
{
    _root.skinContainer.displacementBtn._x = _root.skinContainer.displacementPath._x;
    _root.skinContainer.position_mask._x = _root.skinContainer.displacementBtn._x - _root.skinContainer.position_mask._width;
}
function rollOverAction(element)
{
    _root.rolloverFlag = true;
    element = element.toUpperCase();
    _root.writeInformationalPanel(element);
}
function rollOutAction(element)
{
    _root.rolloverFlag = false;
    _root.writeInformationalPanel("  ");
    if (_root.playerState != 0) 
    {
        _root.showMusicData();
    }
}
function setState(stateValue)
{
    _root.playerState = stateValue;
}
function fnt_displacementBtn_press()
{
    if (_root.playerState != 0) 
    {
        clearInterval(_root.displacementInterval);
        startDrag(_root.skinContainer.displacementBtn, 0, _root.skinContainer.displacementPath._x, _root.skinContainer.displacementBtn._y, _root.skinContainer.displacementPath._x + _root.skinContainer.displacementPath._width - _root.skinContainer.displacementBtn._width, _root.skinContainer.displacementBtn._y);
        Mouse.addListener(mouseListener);
    }
}
function fnt_displacementBtn_release()
{
    if (_root.playerState != 0) 
    {
        stopDrag();
        if (_root.displacementInterval != undefined) 
        {
            clearInterval(_root.displacementInterval);
        }
        _root.displacementInterval = setInterval(this, "displacementInTime", 1000);
        Mouse.removeListener(mouseListener);
        _root.player.setPosition(_root.positionValue);
        _root.player.playMusic(_root.index);
    }
}
function fnt_displacementPath_press()
{
    if (_root.playerState != 0) 
    {
        clearInterval(_root.displacementInterval);
        if (_xmouse < _root.skinContainer.displacementBtn._x) 
        {
            _root.skinContainer.displacementBtn._x = _xmouse;
        }
        else 
        {
            _root.skinContainer.displacementBtn._x = _xmouse - _root.skinContainer.displacementBtn._width;
        }
        _root.skinContainer.position_mask._x = _root.skinContainer.displacementBtn._x - _root.skinContainer.position_mask._width;
        _root.positionValue = (_root.skinContainer.displacementBtn._x - _root.skinContainer.displacementPath._x) * _root.player.getRealDuration() / (_root.skinContainer.displacementPath._width - _root.skinContainer.displacementBtn._width) * 1000;
        _root.writeInformationalPanel("SEEK TO: " + Utils.transformTime(_root.positionValue.toString()));
        _root.player.setPosition(_root.positionValue);
    }
}
function fnt_displacementPath_release()
{
    if (_root.playerState != 0) 
    {
        _root.player.playMusic(_root.index);
    }
}
function fnt_playBtn_state1()
{
    if (_root.playerState != 0) 
    {
        _root.player.playMusic(_root.index);
        return;
    }
    if (_root.confAutoplay) 
    {
        return;
    }
    _root.player.playMusic(_root.index);
    _root.confAutoplay = true;
}
function fnt_playBtn_state2()
{
    if (_root.playerState != 0) 
    {
        _root.player.stopMusic();
        _root.player.playMusic(_root.index);
    }
}
function fnt_pauseBtn_state1()
{
    if (_root.skinContainer.playBtn._currentframe == 2 && _root.playerState != 0) 
    {
        _root.player.pauseMusic();
    }
}
function fnt_pauseBtn_state2()
{
    _root.player.playMusic(_root.index);
}
function fnt_stopBtn_state1()
{
    if (_root.playerState != 0) 
    {
        _root.player.stopMusic();
    }
}
function fnt_nextBtn()
{
    _root.player.nextMusic();
}
function fnt_previousBtn()
{
    _root.player.previousMusic();
}
function fnt_cycleBtn_state1()
{
    _root.player.setLoop(true);
    _root.skinContainer.repeatBtn.gotoAndStop("active");
}
function fnt_cycleBtn_state2()
{
    _root.player.setLoop(false);
    _root.skinContainer.repeatBtn.gotoAndStop("inactive");
}
function fnt_randomBtn_state1()
{
    _root.player.setRandom(true);
    _root.skinContainer.shufflingBtn.gotoAndStop("active");
}
function fnt_randomBtn_state2()
{
    _root.player.setRandom(false);
    _root.skinContainer.shufflingBtn.gotoAndStop("inactive");
}
function fnt_volumeControl(volumeIn)
{
    var __reg3 = undefined;
    if (volumeIn == undefined) 
    {
        __reg3 = this._xmouse;
        _root.skinContainer.volumeControl.volumeControl_mask._x = __reg3 - _root.skinContainer.volumeControl._x - _root.skinContainer.volumeControl.volumeControl_mask._width;
        _root.volumeValue = (__reg3 - _root.skinContainer.volumeControl._x) * 100 / _root.skinContainer.volumeControl.volumeControlPath._width;
    }
    else 
    {
        _root.skinContainer.volumeControl.volumeControl_mask._x = _root.skinContainer.volumeControl.volumeControlPath._width * volumeIn / 100 - _root.skinContainer.volumeControl.volumeControl_mask._width;
    }
    _root.player.setVolume(_root.volumeValue);
    if (_root.playerState == 3) 
    {
        _root.equalizerDisplay(_root.volumeValue);
    }
}
function timerDisplay()
{
    _root.skinContainer.numTimer.timerText.text = _root.player.getPosition();
    _root.skinContainer.numTimer.timerShadow.text = _root.skinContainer.numTimer.timerText.text;
}
function displacementInTime()
{
    _root.skinContainer.displacementBtn._x = _root.skinContainer.displacementBtn._x + _root.displacement;
    _root.skinContainer.position_mask._x = _root.skinContainer.displacementBtn._x - _root.skinContainer.position_mask._width;
}
function equalizerDisplay(index)
{
    var __reg2 = undefined;
    __reg2 = Math.ceil(index * _root.skinContainer.equalizer._totalframes / 100);
    if (__reg2 < _root.skinContainer.equalizer._totalframes) 
    {
        ++__reg2;
    }
    _root.skinContainer.equalizer.gotoAndStop(__reg2);
}
function playerReady()
{
    _root.fnt_volumeControl(_root.volumeValue);
    if (_root.confRepeat == true) 
    {
        _root.player.setLoop(_root.confRepeat);
        _root.skinContainer.repeatBtn.gotoAndStop("active");
    }
    else 
    {
        _root.player.setLoop(_root.confRepeat);
        _root.skinContainer.repeatBtn.gotoAndStop("inactive");
    }
    if (_root.confShuffling == true) 
    {
        _root.player.setRandom(_root.confShuffling);
        _root.skinContainer.shufflingBtn.gotoAndStop("active");
    }
    else 
    {
        _root.player.setRandom(_root.confShuffling);
        _root.skinContainer.shufflingBtn.gotoAndStop("inactive");
    }
    if (_root.confAutoplay == true) 
    {
        _root.player.playMusic(0);
    }
    _root.skinContainer.enabled = true;
}
function musicInitialization(activeMusicIndex, position)
{
    _root.setDisplacement(_root.player.getRealDuration());
    _root.index = activeMusicIndex;
    _root.setState(3);
    if (_root.intervalId != undefined) 
    {
        clearInterval(_root.intervalId);
    }
    _root.intervalId = setInterval(this, "timerDisplay", 1000);
    if (_root.displacementInterval != undefined) 
    {
        clearInterval(_root.displacementInterval);
    }
    _root.displacementInterval = setInterval(this, "displacementInTime", 1000);
    _root.showMusicData();
    btnDeactivateState();
    _root.skinContainer.playBtn.gotoAndStop("active");
    _root.equalizerDisplay(_root.player.getVolume());
}
function musicPause(activeMusicIndex, position)
{
    _root.index = activeMusicIndex;
    _root.setState(2);
    clearInterval(_root.intervalId);
    clearInterval(_root.displacementInterval);
    btnDeactivateState();
    _root.skinContainer.pauseBtn.gotoAndStop("active");
    _root.equalizerDisplay(0);
}
function musicStop(activeMusicIndex)
{
    _root.index = activeMusicIndex;
    _root.setState(1);
    clearInterval(_root.intervalId);
    clearInterval(_root.displacementInterval);
    _root.resetDisplacement();
    btnDeactivateState();
    _root.skinContainer.stopBtn.gotoAndStop("active");
    _root.clearTimerDisplay();
    _root.equalizerDisplay(0);
}
mx.controls.Alert.setSize(250);
_level0.playlistfile = "demoplaylist/demoplaylist.xml";
_level0.configurationfile = "demoplaylist/democonfiguration.xml";
if (_level0.playlistfile == undefined) 
{
    mx.controls.Alert.show("Please the XML playlist file is required for music player application", "Error");
}
else 
{
    if (_level0.configurationfile == undefined) 
    {
        mx.controls.Alert.show("Please the XML configuration file is required", "Error");
    }
    else 
    {
        _root.configure(_level0.configurationfile);
    }
}
var confAutoplay = true;
var confRepeat = true;
var confShuffling = false;
var player;
var index = 0;
var intervalId;
var displacementInterval;
var scrollIntervalId;
var volumeValue = 100;
var volumeBk;
var displacement;
var displacementhscroll = 1;
var positionValue;
var playerState = 0;
var rolloverFlag = false;
var mouseListener = new Object();
_root.listContainer._visible = false;
modifyStage();
mouseListener.onMouseMove = function ()
{
    var __reg3 = undefined;
    var __reg2 = _root.skinContainer.displacementBtn._width / 2;
    __reg3 = _xmouse;
    if (_xmouse >= _root.skinContainer.displacementPath._x + __reg2 && _xmouse <= _root.skinContainer.displacementPath._width + _root.skinContainer.displacementPath._x - __reg2) 
    {
        _root.skinContainer.displacementBtn._x = __reg3 - __reg2;
        _root.skinContainer.position_mask._x = _root.skinContainer.displacementBtn._x - _root.skinContainer.position_mask._width;
        _root.positionValue = (_root.skinContainer.displacementBtn._x - _root.skinContainer.displacementPath._x) * _root.player.getRealDuration() / (_root.skinContainer.displacementPath._width - _root.skinContainer.displacementBtn._width) * 1000;
        _root.writeInformationalPanel("SEEK TO: " + Utils.transformTime(_root.positionValue.toString()));
    }
}
;

есть и более удачные плееры например Для просмотра ссылки Войди или Зарегистрируйся
 

Вложения

  • Flash.rar
    62,4 KB · Просмотры: 26
  • Нравится
Реакции: z3rg
нихочет чета пахать, пишет XML configuration file structure, тоже самое что и было.

и на всякий пожарный код
что это за код?
 
нихочет чета пахать, пишет XML configuration file structure, тоже самое что и было.


что это за код?
Код первого кадра. Просто надо соблюдать пути. Прикрепил архив.
 

Вложения

  • mp3.zip
    146,8 KB · Просмотры: 15
  • Нравится
Реакции: z3rg
demoplaylist.xml, democonfiguration.xml, файлы бес папки лежали, спасибо.

как зделать чтобы плеер проиграл файлы с другого сервера, а то чета не хочет
кпримеру эту даже

+ еще он проирывает не всю песню тока 2 с копейками минуты
 
в корень сайта положи файл crossdomain.xml следующего содержания

HTML:
<?xml version="1.0"?>
<cross-domain-policy>
  <allow-access-from domain="*" />
</cross-domain-policy>

еще может флешка скомпилирована для работы с локальными данными

кодировка файла utf8

Добавлено через 3 минуты
попробуй плеер на uppod.ru или Для просмотра ссылки Войди или Зарегистрируйся
скин можешь сам отрисовать или взять от этого плеера
 
не нихочет, в топку этот плеер надо искать чтото другое, темболее проигрывает 2 минуты тока
смотрел он не поддерживает плей листы, или я неправ.
там вроди задаешь тока 1 файл, а так плеер гуд.
 
не нихочет, в топку этот плеер надо искать чтото другое, темболее проигрывает 2 минуты тока

смотрел он не поддерживает плей листы, или я неправ.
там вроди задаешь тока 1 файл, а так плеер гуд.

uppod.ru поддерживает плейлисты, если немного шаришь в AS, то лучше сделай сам, там работы на час максимум с отрисовкой элементов интерфейса

я в соседней теме про плеер уже алгоритм описал
 
както не сильно он нравится, я так понял плейлист тока 1 раз задается, тоесть в самом коде плеера, и композиция тоже.
wimpy, смотрел вроди гуд с плейлистами работает удаленно, но есть одно но он по одиночке не проигрывает. ниже код.

Незнаешь есть какие плееры чтоб можно было так задовать композицию
или подругому но в 1 файле.

<object width="313" height="55" classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000">
<param name="movie" value="wimpy.swf?file="http://www.nulled.ws/1.mp3" />
</object>
 
Вот код для вставки uppod

HTML:
Стандартный HTML-код:

<object type="application/x-shockwave-flash" data="http://site.ru/uppod.swf" width="500" height="375">
<param name="bgcolor" value="#ffffff" />
<param name="allowFullScreen" value="true" />
<param name="allowScriptAccess" value="always" />
<param name="wmode" value="transparent" />
<param name="movie" value="http://site.ru/uppod.swf" />
<param name="flashvars" value="st=ссылка-на-файл-стилей&amp;file=ссылка-на-медиафайл" />
</object>

HTML-код с тегом embed:

<object width="500" height="375">
<param name="allowFullScreen" value="true" />
<param name="allowScriptAccess" value="always" />
<param name="wmode" value="transparent" />
<param name="movie" value="http://site.ru/uppod.swf" />
<param name="flashvars" value="st=ссылка-на-файл-стилей&amp;file=ссылка-на-медиафайл" />
<embed src="http://site.ru/uppod.swf" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" wmode="transparent" flashvars="st=ссылка-на-файл-стилей&amp;file=ссылка-на-медиафайл" width="500" height="375">
</embed>
</object>
* data="http://site.ru/uppod.swf" и movie value="http://site.ru/uppod.swf" - ссылка на плеер;
* width="500" height="375" - размер flash-объекта, в котором собирается плеер. Размер самого плеера указывается в стилях (если размер 500х375 или не указан, то плеер автоматически растягивается на весь flash-объект)
* param name="bgcolor" value="#ffffff" - фон сайта (не обязательно указывать при wmode=transparent
* param name="allowFullScreen" value="true" - необходимое разрешение использовать полноэкранный режим
* param name="allowScriptAccess" value="always" - необходимое разрешение открывать внешние ссылки из плеера
* param name="wmode" value="transparent" - режим прозрачности плеера для сайтов с неоднородным фоном. Актуален для плееров со скруглением (автоматически вставляется, если включен эффект прозрачности, в других случаях нужно добавлять вручную). Лучше использовать прозрачность только по необходимости.
* name="flashvars" value="..." - список ключей для указания плееру всех настроек (в нашем случае это ссылки на стили, медиафайл или плейлист)
* для тега embed все параметры param необходимо дублировать

плейлисты указываются в переменной flashvars, в плейлистах твой список песен
Вообщем, для того чтобы динамически менять плей-листы
создаешь текстовый файл вот с таки содержанием (это называется json-нотация)

HTML:
{"playlist":[{"comment":"лалала","file":"http://audio.uppod.net/sample.mp3"}]}
чтобы вторую песню поместить изменяешь так
HTML:
{"playlist":[{"comment":"лалала","file":"http://audio.uppod.net/sample.mp3"}, [B]{"comment":"лалалл1","file":"http://audio.uppod.net/sample1.mp3"}[/B]]}

можно генерить список из базы данных, помещяя выборку в массив, и потом отдавая плееру из функции json_encode()

если непонятно- поиши, обьясню

или если совсем не понятно, -напиши какие функции нужны, и отрисуй скин, или пришли скин другого плеера, я те быстренько склепаю плеер
 
  • Нравится
Реакции: z3rg
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху