Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 1.0/2.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 09.12.2009, 17:48
Zero108 вне форума Посмотреть профиль Отправить личное сообщение для Zero108 Найти все сообщения от Zero108
  № 1  
Ответить с цитированием
Zero108
 
Аватар для Zero108

Регистрация: Dec 2009
Сообщений: 4
Question Проигрывание mp3 в реальном времени

Есть на сервере index.swf, который, среди прочего великолепия, умеет проигрывать в реальном времени mp3 файлы. Файл (один) выбирается случайным образом из списка и проигрывается по кругу. Как изменить следующий код, чтобы файлы проигрывались по кругу один за другим в реальном времени?

Код AS1/AS2:
///////////////MUSIC PLAYER ////////////////////////////////
//we create the array thay will handle the mp3's
var song:Array = new Array();
//The random songs
song[0] = "cms_mp3/ran_jazzmatazz.mp3";
song[1] = "cms_mp3/scottwills_summerjazz.mp3";
song[2] = "cms_mp3/flar_neon.mp3";
song[3] = "cms_mp3/solidbeats_simmerdown.mp3";
//the i var will check the number of songs to random
i = song.length;
//all the song are mixed in a random order
RandomSong = Math.floor(Math.random()*i);
//We set the variables to work with 
MinimumVolumen = 0;
MaximumVolumen = 100;
step = 1;
fade = 0;
StartAlphaEqualizer = MaximumVolumen;
EndAlphaEqualizer = 0;
//Buffertime before to start playing (5 seconds)
music._soundbuftime = 5;
//We create a new sound class
music = new Sound();
// We load the random Songs in streaming
music.loadSound(song[RandomSong], true);
// We put the vol at zero at the begining
music.setVolume(0);
//When the music is finish we play again to create a loop 
music.onSoundComplete = function() {
	trace("Song is playing again");
	this.start();
};
//FADE IN OUT
FadeInandOut = function () {
	onEnterFrame = function () {
		// We check if the vol is on , so we make a fade out
		if (fade == 1) {
			MinimumVolumen = MinimumVolumen-step;
			if (MinimumVolumen<0) {
				MinimumVolumen = 0;
			}
			music.setVolume(MinimumVolumen);
			// If the song is off, we make a fade in
		} else {
			MinimumVolumen = MinimumVolumen+step;
			if (MinimumVolumen>MaximumVolumen) {
				MinimumVolumen = MaximumVolumen;
			}
			music.setVolume(MinimumVolumen);
		}
	};
};
//We call the function
FadeInandOut();


Последний раз редактировалось iNils; 09.12.2009 в 18:08.
Старый 10.12.2009, 17:09
deportivo вне форума Посмотреть профиль Отправить личное сообщение для deportivo Найти все сообщения от deportivo
  № 2  
Ответить с цитированием
deportivo

Регистрация: Dec 2008
Сообщений: 8
Код AS1/AS2:
music.onSoundComplete = function() {
	nextSong();
};
 
function nextSong () {
	RandomSong++;
	if (RandomSong > song.length-1) {
		RandomSong = 0;
	}
	music.loadSound(song[RandomSong], true);
}
Что-то в этом роде, вроде должно работать )

Старый 10.12.2009, 21:02
Zero108 вне форума Посмотреть профиль Отправить личное сообщение для Zero108 Найти все сообщения от Zero108
  № 3  
Ответить с цитированием
Zero108
 
Аватар для Zero108

Регистрация: Dec 2009
Сообщений: 4
Спасибо. Все отлично заработало.

Вопрос такой: mp3 файлы, лежащие в отдельной папке на сервере, проигрываются как потоковое аудио этим кодом. При этом, если тестить на локале, то проигрываются файлы mp3 любых размеров. На сервере проигрываются без проблем файлы размером 3,5-5,5 мб. Когда я попробовал подгрузить на сервер mp3 файл рамером 36 мб, он проигрываться этим кодом не хочет. Можно ли как-то усовершенствовать этот как, чтобы с сервера проигрывались и такие большие файлы, или это какие-то ограничения бразуера или еще чего-то?

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

Старый 10.12.2009, 22:56
deportivo вне форума Посмотреть профиль Отправить личное сообщение для deportivo Найти все сообщения от deportivo
  № 4  
Ответить с цитированием
deportivo

Регистрация: Dec 2008
Сообщений: 8
Насчет того, как сделать чтобы с большим объемом работало - не знаю! ))

Чтобы один за одним были:

вместо RandomSong = Math.floor(Math.random()*i);
напиши - RandomSong = 0;
а там уже в функции будет на один увеличиваться и друг за другом как они в массиве записаны будут играться.

Должно работать. Если нет - пиши, будем дальше думать ))))))

Создать новую тему Ответ Часовой пояс GMT +4, время: 01:16.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

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

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


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


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