Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Мучаюсь с mp3 player (http://www.flasher.ru/forum/showthread.php?t=122612)

iNils 16.03.2009 00:59

avrile, для оформления своего кода надо использовать теги [code][/code].

avrile 16.03.2009 01:08

serenkiy спасибо уже за эти наводки.
Да, читаю Мука - AS3.0,
до того был Гурский - AS2.0, но он меня на странице так 200-й убил...
еще до того, прочитала пару книжек о флеше, в общем программа понятна, но вот с этим программированием.. или это мои мозги так устроены.. :)

Добавлено через 59 секунд
iNils, да, спасибо, обязуюсь впредь! :)

serenkiy 16.03.2009 01:16

Avrile, есть книга "ActionScript 3.0. Сборник рецептов", там подробно написано создание mp3 плеера (простенького), точнее методы работы со звуком (ну там до плеера не далеко). Может вам будет лучше написать свой и уже знать что к чему. Найдите книжку (в интернете) или купите, буквально за 1-3 часа чтения и практики сделаете свой плеер, через еще немного времени разберетесь как его встраивать. :) Окунетесь в мир flash полностью! ;)

avrile 16.03.2009 01:53

нашла и уже скачала :)
serenkiy :yahoo:

serenkiy 16.03.2009 02:15

Рад за Вас, желаю плодотворных успехов в познании :) Если возникнут проблемы с освоением, пишите в этой же теме, будем решать дальше!

mastadont 19.04.2009 17:07

Сваял, благодаря "Сборнику рецептов", но обнаружил 2 проблеммы:
1. кнопка плей\пауза работает только 1 раз
2. после снятия с паузы останавливается полоса проигрывания
Код AS3:

var _sound:Sound;
var _request:URLRequest=new URLRequest("song.mp3");
var buffer:SoundLoaderContext=new SoundLoaderContext(10000);
var _channel:SoundChannel;
var _playing:Boolean=false;
var position:int;
 
_sound=new Sound(_request,buffer);
_channel=_sound.play();
_playing=true;
 
addEventListener(Event.ENTER_FRAME, onEnterFrame);
function onEnterFrame(event:Event):void {
        var barHeight:int=5;
        var barWidth:int=200;
        var total:int=_sound.bytesTotal;
        var loaded:int=_sound.bytesLoaded;
        var _length:int=_sound.length;
        graphics.clear();
        graphics.beginFill(0xFF9900);
        graphics.drawRect(80,30,barWidth,barHeight);
        graphics.endFill();
        if (total>0) {
                var percent:Number=loaded/total;
                var position:int=_channel.position;
                _length/=percent;
                var played:Number=position/_length;
                graphics.beginFill(0xFFFF99);
                graphics.drawRect(80,30,barWidth*percent,barHeight);
                graphics.endFill();
                graphics.beginFill(0xFF3300);
                graphics.drawRect(80,30,barWidth*played,barHeight);
                graphics.endFill();
        }
}
_sound.addEventListener(Event.ID3, onID3);
function onID3(event:Event) {
        _title.text=_sound.id3.artist+"-"+_sound.id3.songName;
}
 
btn_pl.addEventListener(MouseEvent.CLICK, onClick);
function onClick(event:MouseEvent):void {
                if (_playing) {
                position=_channel.position;
                _channel.stop();
 
        }
        else {
                _sound.play(position);
 
        }_playing= !_playing;
}


cleptoman 20.04.2009 19:02

_channel.position у вас возвращается в милисекундах
а тут, насколько помню нужны секунды:
_sound.play(position);

ми пардон - все-таки милисекунды)

Добавлено через 3 минуты
вот так попробуйте
Код AS3:

else {
                _channel = _sound.play(position);
 
        }


mastadont 20.04.2009 22:12

благодарю, уже решил))

Добавлено через 48 часов 6 минут
Никак не хочет бегунок громкости работать.



Код AS3:

var _sound:Sound;
var _request:URLRequest=new URLRequest("mm.mp3");
var buffer:SoundLoaderContext=new SoundLoaderContext(500);
var _channel:SoundChannel;
var _playing:Boolean=true;
var _position:int;
 
var _transform:SoundTransform=new SoundTransform(s);
var s:Number;
 
_sound=new Sound(_request,buffer);
_channel=_sound.play();
 
_transform.volume;
 
_channel.soundTransform=_transform;
btn_pl.addEventListener(MouseEvent.CLICK, onClick);
function onClick(event:MouseEvent):void {
        if (_playing) {
                _position=_channel.position;
                _channel.stop();
        } else {
                _channel=_sound.play(_position);
        }
        _playing=! _playing;
}
//вот и сам бегунок
var volHeight:int=5;
var volWidth:int=50;
graphics.clear();
graphics.beginFill(0xFF9900);
graphics.drawRect(80,50,volWidth,volHeight);
graphics.endFill();
var vol_rect:Sprite=new Sprite  ;
vol.addEventListener(MouseEvent.MOUSE_DOWN, onClick);
function onClick(event:MouseEvent):void {
        s=Math.abs(vol.mouseX/50);
 
        trace(s);
 
        vol_rect.graphics.clear();
        vol_rect.graphics.beginFill(0xFF3300);
        vol_rect.graphics.drawRect(80,50,(volWidth*s),volHeight);
        vol_rect.graphics.endFill();
        vol_rect.graphics.endFill();
        addChild(vol_rect);
        vol_rect.addChild(vol);
}



Часовой пояс GMT +4, время: 17:28.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.