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

Тема в разделе "Флеш", создана пользователем z3rg, 22 апр 2009.

Статус темы:
Закрыта.
  1. z3rg

    z3rg

    Регистр.:
    2 фев 2007
    Сообщения:
    731
    Симпатии:
    337
    Помоите разобратся как вошнать плейлист в этот флеш плеер
    http://components.developers4web.com/demo/miniplayer/MINIPlayer.swf
    или может есть чтото подобное, главное, пауза, перемотка, плей, стоп, и чтоб работал в потоке тоесть проигрывал по мере загрузки, а не так что сначала загрузит потом проигрываетю.
     
  2. alexzander69

    alexzander69 Постоялец

    Регистр.:
    27 май 2008
    Сообщения:
    95
    Симпатии:
    46
    В приложении два файла конфигурации, и сам плеер
    файл 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.displacementBtn0_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 == && _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(activeMusicIndexposition)
    {
        
    _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(activeMusicIndexposition)
    {
        
    _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()));
        }
    }
    ;


    есть и более удачные плееры например http://uppod.ru/
     

    Вложения:

    • Flash.rar
      Размер файла:
      62,4 КБ
      Просмотров:
      26
    z3rg нравится это.
  3. z3rg

    z3rg

    Регистр.:
    2 фев 2007
    Сообщения:
    731
    Симпатии:
    337
    нихочет чета пахать, пишет XML configuration file structure, тоже самое что и было.

    что это за код?
     
  4. KillDead

    KillDead

    Регистр.:
    11 авг 2006
    Сообщения:
    890
    Симпатии:
    561
    Код первого кадра. Просто надо соблюдать пути. Прикрепил архив.
     

    Вложения:

    • mp3.zip
      Размер файла:
      146,8 КБ
      Просмотров:
      15
    z3rg нравится это.
  5. z3rg

    z3rg

    Регистр.:
    2 фев 2007
    Сообщения:
    731
    Симпатии:
    337
    demoplaylist.xml, democonfiguration.xml, файлы бес папки лежали, спасибо.

    как зделать чтобы плеер проиграл файлы с другого сервера, а то чета не хочет
    кпримеру эту даже
    http://components.developers4web.com/demo/miniplayer/mp3/jazzalude.mp3
    + еще он проирывает не всю песню тока 2 с копейками минуты
     
  6. alexzander69

    alexzander69 Постоялец

    Регистр.:
    27 май 2008
    Сообщения:
    95
    Симпатии:
    46
    в корень сайта положи файл crossdomain.xml следующего содержания

    HTML:
    
    <?xml version="1.0"?>
    <cross-domain-policy>
      <allow-access-from domain="*" />
    </cross-domain-policy>
    
    еще может флешка скомпилирована для работы с локальными данными

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

    Добавлено через 3 минуты
    попробуй плеер на uppod.ru или http://flv-mp3.com/ru/
    скин можешь сам отрисовать или взять от этого плеера
     
  7. z3rg

    z3rg

    Регистр.:
    2 фев 2007
    Сообщения:
    731
    Симпатии:
    337
    не нихочет, в топку этот плеер надо искать чтото другое, темболее проигрывает 2 минуты тока
    смотрел он не поддерживает плей листы, или я неправ.
    там вроди задаешь тока 1 файл, а так плеер гуд.
     
  8. alexzander69

    alexzander69 Постоялец

    Регистр.:
    27 май 2008
    Сообщения:
    95
    Симпатии:
    46
    uppod.ru поддерживает плейлисты, если немного шаришь в AS, то лучше сделай сам, там работы на час максимум с отрисовкой элементов интерфейса

    я в соседней теме про плеер уже алгоритм описал
     
  9. z3rg

    z3rg

    Регистр.:
    2 фев 2007
    Сообщения:
    731
    Симпатии:
    337
    както не сильно он нравится, я так понял плейлист тока 1 раз задается, тоесть в самом коде плеера, и композиция тоже.
    wimpy, смотрел вроди гуд с плейлистами работает удаленно, но есть одно но он по одиночке не проигрывает. ниже код.

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

     
  10. alexzander69

    alexzander69 Постоялец

    Регистр.:
    27 май 2008
    Сообщения:
    95
    Симпатии:
    46
    Вот код для вставки 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>
    
    плейлисты указываются в переменной 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 нравится это.
Статус темы:
Закрыта.