Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Media";
Текущий архив: 2003.11.13;
Скачать: [xml.tar.bz2];

Вниз

Случайный порядок воспроизведения   Найти похожие ветки 

 
alois   (2003-07-09 19:02) [0]

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


 
Fenik   (2003-07-09 22:24) [1]

Есть такая замечательная функция Random


 
iXuSs   (2003-07-09 23:26) [2]

Для решения данного вопроса прежде всего нужно иметь некоторый список файлов, которые надо для начала уметь проиграть в прямом порядке. Это можно реализовать, умея пользоваться событием OnNotify и свойством Notify плеера, которое наступает при окончании выполнения какой-либо команды, в частности, при окончании проигрывания файла. Для создания списка файлов (т.е. плейлиста) можно воспользоваться классом TStrings.

Удачи.


 
iXuSs   (2003-07-09 23:33) [3]

Чуть не забыл. Если требуется проиграть файлы в случайном порядке, то логично перемешать порядок расположения файлов в плейлисте. Для этого действительно подойдёт Random, но возникнут некоторый сложности с неповторением композиций за один подход, т.е. нужно перемешать плейлист так, чтобы каждая композиция была представлена один раз. Для этого предлагаю простую процедурку, которая заполняет массив случайными неповторяющимися числами. При решении твоей задачи можно заполнить некоторый динамический массив случайными неповторяющимися числами и играть композиции соответсвенно массиву, или непосредственно перемешать сам плейлист, переделав данную процедурку под свои нужды:

procedure FillArray(var A: array of Integer);
var
I, S, R: Integer;
begin
for I := 0 to High(A) do A[I] := I;
for i := High(A) downto 0 do
begin
( I) Чуть не забыл. Если требуется проиграть файлы в случайном порядке, то логично перемешать порядок расположения файлов в плейлисте. Для этого действительно подойдёт Random, но возникнут некоторый сложности с неповторением композиций за один подход, т.е. нужно перемешать плейлист так, чтобы каждая композиция была представлена один раз. Для этого предлагаю простую процедурку, которая заполняет массив случайными неповторяющимися числами. При решении твоей задачи можно заполнить некоторый динамический массив случайными неповторяющимися числами и играть композиции соответсвенно массиву, или непосредственно перемешать сам плейлист, переделав данную процедурку под свои нужды:

procedure FillArray(var A: array of Integer);
var
I, S, R: Integer;
begin
for I := 0 to High(A) do A[I] := I;
for i := High(A) downto 0 do
begin
R := Random(I);
S := A[R];
A[R] := A[I];
A[I] := S;
end;
end;


 
pasha676   (2003-07-10 10:08) [4]


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

На самом деле достаточно одного прохода по списку по принцыпу перемешивания колоды карт. Тогда и повторяться не будет и все учтеться и т.д.


 
alois   (2003-07-10 18:41) [5]

THANKS VERY MUCH



Страницы: 1 вся ветка

Форум: "Media";
Текущий архив: 2003.11.13;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.46 MB
Время: 0.029 c
3-40895
viper_cd
2003-10-26 23:04
2003.11.13
запрос и группировка


3-40798
Виталя
2003-10-22 15:17
2003.11.13
Как отследить поле NULL возвращаемое хранимой процедурой ?


3-40977
malmba
2003-10-16 17:41
2003.11.13
а база где....


7-42213
Shakula
2003-09-04 15:44
2003.11.13
Как определить адрес порта по названию.


14-41889
Liandri
2003-10-20 23:55
2003.11.13
3D Studio Max





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский