Просмотр полной версии : Вопрос по подгрузке аудио..
Доброе время суток!
Подскажите пожалуйста, что надо прописать в AS чтобы плеер подгружал и воспроизводил аудио (из папки на сервере) в потоковом режиме?
В каком формате должен быть аудиофайл И возможно ли организовать рандомную подгрузку (если в папке, допустим, файлов 5)?
если на AS1/AS2 пишите,то формат mp3.
Рандомно можно,
Юзайте класс Sound,f1 в помощь...
s = new Sound();
function loading(){s.loadSound('./map/music'+random(5)+'.mp3' , true);}
loading();
s.onSoundComplete=loading();
Вообще-то random(5),тогда уж.
Пасибо, не заметил - исправил :)
спасибо за советы!
пишу на AS1/AS2.. до AS3 мне еще далеко=)
вот что получилось..
плеер имеет 4 кнопки play, stop, fw, rev, отображает название трека и группы, время воспроизведения, имеет возможность изменять громкость.
запускает файлы в рандомном порядке, но воспроизводит их по плейлисту..(
как нарушить эту идилию упорядочности воспроизведения на AS1\AS2 ??
stop();
playlist = new XML();
playlist.ignoreWhite = true;
playlist.onLoad = function(success) {
if (success) {
_global.songname = [];
_global.songband = [];
_global.songfile = [];
for (var i = 0; i<playlist.firstChild.childNodes.length; i++) {
_global.songname[i] = playlist.firstChild.childNodes[i].attributes.name;
_global.songband[i] = playlist.firstChild.childNodes[i].attributes.band;
_global.songfile[i] = playlist.firstChild.childNodes[i].attributes.file;
// trace(songname[i]+" "+songfile[i]+" "+songband[i]);
}
}
_root.createEmptyMovieClip("sound_mc", 1);
_global.song_nr = random(songfile.length);
_root.sound_mc.songStarter(songfile[song_nr], songname[song_nr], songband[song_nr]);
};
function timer(sound_obj) {
time = sound_obj.position/1000;
min = Math.floor(time/60);
min = (min<10) ? "0"+min : min;
sec = Math.floor(time%60);
sec = (sec<10) ? "0"+sec : sec;
timeDisplay_txt.text = min+":"+sec;
}
MovieClip.prototype.songStarter = function(file, name, band) {
if (this.sound_obj) {
this.sound_obj.stop();
delete this.sound_obj;
}
this.sound_obj = new Sound(this);
this.sound_obj.loadSound(file, true);
this.onEnterFrame = function() {
if (this.sound_obj.position>0) {
delete this.onEnterFrame;
this._parent.display_txt.text = name+" / "+band;
timeInterval = setInterval(timer, 1000, this.sound_obj);
} else {
this._parent.display_txt.text = "loading...";
}
};
this.sound_obj.onSoundComplete = function() {
clearInterval(timeInterval);
this._parent.timeDisplay_txt.text = "00:00";
(song_nr == songfile.length-1) ? _global.song_nr=0 : _global.song_nr++;
_root.sound_mc.songStarter(songfile[song_nr], songname[song_nr], songband[song_nr]);
};
this._parent.volume1.dragger.onPress = function() {
startDrag(this, true, 0, this._y, this._parent.volBG._width, this._y);
this.onEnterFrame = function() {
var p = (this._x/this._parent.volBG._width)*100;
this._parent._parent.sound_mc.sound_obj.setVolume(p);
};
};
this._parent.volume1.dragger.onRelease = function() {
delete this.onEnterFrame;
stopDrag();
};
this._parent.volume1.dragger.onReleaseOutside = function() {
stopDrag();
};
};
btn_play.onRelease = function() {
clearInterval(timeInterval);
this._parent.timeDisplay_txt.text = "00:00";
this._parent.sound_mc.songStarter(songfile[song_nr], songname[song_nr], songband[song_nr]);
};
btn_stop.onRelease = function() {
clearInterval(timeInterval);
this._parent.timeDisplay_txt.text = "00:00";
this._parent.sound_mc.sound_obj.stop();
};
btn_fw.onRelease = function() {
clearInterval(timeInterval);
this._parent.timeDisplay_txt.text = "00:00";
(song_nr == songfile.length-1) ? _global.song_nr=0 : _global.song_nr++;
_root.sound_mc.songStarter(songfile[song_nr], songname[song_nr], songband[song_nr]);
};
btn_rev.onRelease = function() {
clearInterval(timeInterval);
this._parent.timeDisplay_txt.text = "00:00";
(song_nr == 0) ? _global.song_nr=songfile.length-1 : _global.song_nr--;
_root.sound_mc.songStarter(songfile[song_nr], songname[song_nr], songband[song_nr]);
};
playlist.load("playlist.xml");
Можешь сделать чтобы Без плэйлиста, то есть чтоб он воспроизводил всё что есть в определеной папки, только минус в том что он не будет знать артиста, групу, но можно исправить это при помоши названия песни, если интересует - могу помоч...
darksranger
05.12.2008, 22:57
пишу на AS1/AS2.. до AS3 мне еще далеко=)
вы еще дальше себя загоняете от as3, копаясь в as2, если в перспективах есть изучение as3, то лучше начать сейчас, чем потом что то переучивать ,что то переосмысливать !
изначально и задумывалось, чтобы в хаотичном порядке именно "все из папки"!
Но если плэйлист подгружать, то рандом не доведу до работоспособного состояния никак..
очень интересует твой вариант!
Добавлено через 5 минут
2 darksranger:
Спасибо за совет! учту! :)
Весь проект изначально пишется на AS1\AS2.. что-то слышал, что AS3 и AS1(2) не долюбливают друг друга..)
darksranger
05.12.2008, 23:24
ну я перешол на as3 взяв проэкт и изначально начав его на as3 ))))
по делу
а в чем проблема ? кто мешает получить список через php скрипт, с общим количеством и его подсунуть рэндому, я так делал ... удобно :)
кто мешает получить список через php скрипт, с общим количеством и его подсунуть рэндому..
не доводилось с php скриптами работать..
если так, что в php файле прописывать нужно?
Добавлено через 15 часов 37 минут
playlist.php так должен выглядеть?
<?php
echo '<?xml version="1.0" encoding="UTF-8"?><songs>';
$songs = array (
1 => array('file://localhost/C:/WebServers/home/localhost/www/Tests/test1.ru/test1.mp3', 'Test Track 1'),
2 => array('file://localhost/C:/WebServers/home/localhost/www/Tests/test1.ru/test2.mp3', 'Test Track 2')
// N => array('URL', 'TITLE'),
);
shuffle($songs);
foreach ($songs as $song) {
echo '<song path="'.$song[1].'" title="'.$song[2].'" />';
}
echo '</songs>';
?>
не получается его подгрузить во flahs'ку..
playlist.load("playlist.php");
или так:
source_lv = new LoadVars();
source_lv.onData = function(src){
trace(src)
}
source_lv.load('file://localhost/C:/WebServers/home/localhost/www/Tests/test1.ru/playlist.php');
????
<?php
$sPath = './guest_foto/'; //папка с сервера содерж. музыку, относительно скрипта
$dDir = opendir($sPath); // открываем директорию, $dDir - дескриптор
$aFileList = array(); // массив в который будем записывать имена файлов
// цикл считывания директории
while ($sFileName=readdir($dDir))
{
if ($sFileName!='.' && $sFileName!='..')
{
$aFileList[]=$sFileName;
}
}
closedir ($dDir);
// подсчет количества файлов
$iNumFiles=count($aFileList);
sort($aFileList,SORT_STRING);
// вывод значения
//echo $iNumFiles;
echo '<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<images>';
foreach ($aFileList as $d => $den)
{
//$den1=explode('.mp3',$den);
echo '<pic>
<image>./guest_foto/'.$den.' </image>
<caption>Kresge</caption>
</pic>';
}
echo '</images>';
?>
, если не разберешся пиши
Работает на vBulletin ® версия 3.7.3. Copyright ©2000-2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 1999-2008 Flasher.ru. All rights reserved.