Форум программистов, компьютерный форум, киберфорум
Наши страницы
Delphi: Графика, звук, видео
Войти
Регистрация
Восстановить пароль
 
 
Рейтинг 4.75/8: Рейтинг темы: голосов - 8, средняя оценка - 4.75
_NE_KAKIX_IMEN_
-1 / 3 / 1
Регистрация: 20.05.2015
Сообщений: 445
1

Количество воспроизведений!

20.05.2015, 17:46. Просмотров 1505. Ответов 55
Метки нет (Все метки)

Здравствуйте Уважаемые программисты хакеры и форумчаны! я столкнулся с проблемой не как не могу ее решить и найти не могу не где! Заключается она в том! я создаю программу и в ней есть звуки которые надо друг за другом воспроизвести я не пойму как это сделать, да и еще вопрос на засыпку как задать количество раз воспроизведения! допустим в Edit вводим 5 раз, и моя мелодия песня проигрывала 5 раз а после этого переключалась на другую мелодию песню и так далее! да использую библиотеку Басс! помогите мне пожалуйста с Уважением к Вам всем!))) скиньте исходник если есть я только начинающий не пойму что и до чего! жду ответов!
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
20.05.2015, 17:46
Ответы с готовыми решениями:

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

Определить количество пятерок, количество четверок, количество троек и количество двоек в массиве оценок
В массиве записаны оценки по иностранному языку каждого из 22 учеников...

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

Пользователь вводит строку. Определить количество букв (рус eng), количество цифр и количество остальных
в чем проблема не пойму работает на английских буквах на цифрах и остальные...

Найти количество строк, в которых количество отрицательных элементов больше, чем количество положительных.
Двумерные массивы. Задание 1. В каждом варианте дан двумерный массив A из N...

55
_NE_KAKIX_IMEN_
-1 / 3 / 1
Регистрация: 20.05.2015
Сообщений: 445
27.05.2015, 16:45  [ТС] 21
У меня какие то не дорозумения, описать что к чему и что оно делает можно??
0
krapotkin
3418 / 3025 / 1047
Регистрация: 14.04.2014
Сообщений: 14,677
Записей в блоге: 15
27.05.2015, 16:50 22
если перевести названия упомянутых процедур и компонентов с нерусского языка, будет как раз описание того, что они делают и для чего предназначены
0
_NE_KAKIX_IMEN_
-1 / 3 / 1
Регистрация: 20.05.2015
Сообщений: 445
27.05.2015, 17:07  [ТС] 23
я смогу с помощью этого кода воспроизвести количество раз которую задаю в Tedit???

Добавлено через 10 минут
eRepeatCount:TEdit; //его надо переменовывать этот edit?

Добавлено через 4 минуты
Вообще не пойму что к чему извините мозгов не хватает! может поможете??
0
krapotkin
3418 / 3025 / 1047
Регистрация: 14.04.2014
Сообщений: 14,677
Записей в блоге: 15
27.05.2015, 17:12 24
я не умею рассказывать о вселенной
если есть конкретный вопрос - задавай

Цитата Сообщение от Не_Профи Посмотреть сообщение
eRepeatCount:TEdit; //его надо переменовывать этот edit?
это я так поименовал TEdit в котором количество повторений

вопрос ведь был как надо сделать?
надо вот так
0
_NE_KAKIX_IMEN_
-1 / 3 / 1
Регистрация: 20.05.2015
Сообщений: 445
27.05.2015, 20:13  [ТС] 25
короче ошибка на ошибке получается я так понял я правильно сделал

Добавлено через 16 минут
код
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
  private
    FCurTrack:integer;
    FCurrentRepeat:integer;
    FRepeatCount:integer;
    function GetRepeatCount: integer;
    procedure SetRepeatCount(Value:integer);
    { private declarations }
  public
  //  procedure Play(N:integer);
  procedure Stop;
  procedure PlayNext;
  procedure PlayCurrent;
  procedure PlayTrack(N:integer);
  property RepatCount:integer read GetRepeatCount write SetRepeatCount;
//procedure LoopSyncProc(handle: HSYNC; stream, data: DWORD; user: Pointer); stdcall;
   { public declarations }
  end;
var
  Form2: TForm2;
  stream:Hstream;
  List:TStringList;
  lsync : HSYNC;
implementation
 uses unit1;
 
{$R *.lfm}
 
 { TForm2 }
 
procedure TForm2.eRepeatCountChange(Sender: TObject);
begin
if (StrToIntDef(eRepeatCount,1)<>RepeatCount) then //ошибка
RepeatCount:=StrToIntDef(eRepeatCount,1);
end;
 
procedure TForm2.FormDestroy(Sender: TObject);
begin
List.free;
end;
 
procedure TForm2.SetRepeatCount(Value: integer);
begin
  FRepeatCount:=Value;
    if FRepeatCount<=0 then
      FRepeatCount:=1;
    if eRepeatCount.Text<>IntToStr(FRepeatCount) then
      eRepeatCount.Text:=IntToStr(FRepeatCount);
end;
 
function TForm2.GetRepeatCount: integer;
begin
if FRepeatCount<=0 then exit(1)
else
exit(FRepeatCount);
end;
 
procedure TForm2.PlayCurrent;
begin
inc(Form2.FCurrentRepeat);
Play(FCurTrack);
end;
 
 
{procedure TForm2.LoopSyncProc(handle: HSYNC; stream, data: DWORD; user: Pointer//Здесь как всегда ошибки
  ); stdcall;
begin
//if Form2.Playing then
    Form2.Stop;
  if Form2.FCurrentRepeat<FRepeatCount then
    Form2.PlayCurrent
  else
    Form2.PlayNext;
end;  }
 
{ TForm2 }
 
end.
Добавлено через 5 минут
перевел не чего не помогло по русски понимаю лучше! опишите пожалуйста все процедуры( или покажите пример с использованием этого кода) за ранее спасибо!

Добавлено через 3 минуты
да уж такой большой код нужен для воспроизведения количество раз((( в этом коде я не чего не разобрал(((и не понял((( а как то по проще нельзя??

Добавлено через 8 минут
где я сделал коментарий там много ошибок если надо сейчас их опишу!

Добавлено через 3 минуты
unit2.pas(71,29) Error: Incompatible type for arg no. 1: Got "TEdit", expected "AnsiString"

unit2.pas(71,34) Error: Identifier not found "RepeatCount"

unit2.pas(72,1) Error: Identifier not found "RepeatCount"

unit2.pas(72,38) Error: Incompatible type for arg no. 1: Got "TEdit", expected "AnsiString"

unit2.pas(147,1) Error: Identifier not found "Play"

unit2.pas(163,18) Error: method identifier expected

unit2.pas(168,27) Error: Identifier not found "FRepeatCount"

вот все ошибки которые выдали если надо, я напишу где они хотя может и поймете вы(((
жду Вас, срочно помощь нужна!

Добавлено через 1 час 16 минут
что делать приведите не много по проще пример или не переменовывайте копмоненты а то так не понятно((

Добавлено через 12 минут
Или опишите с примерами а я подстроюсь За ранее спасибо!

Добавлено через 33 минуты
жду жду жду(((
0
krapotkin
3418 / 3025 / 1047
Регистрация: 14.04.2014
Сообщений: 14,677
Записей в блоге: 15
27.05.2015, 21:59 26
я не собираюсь чего-то и делать, и переделывать и еще объяснять как сделал
если нет желания разбираться в приложенных к библиотеке примерах, кто виноват?
их там более чем достаточно

по ошибкам:

StrToIntDef(eRepeatCount,1) заменить на StrToIntDef(eRepeatCount.text,1)

и да, надо написать процедуру
точнее, вставить в нее уже имеющийся код
Delphi
1
2
3
4
procedure TForm2.play(N:integer);
begin
  // тут должен быть запуск трека List(N);
end;
0
_NE_KAKIX_IMEN_
-1 / 3 / 1
Регистрация: 20.05.2015
Сообщений: 445
28.05.2015, 09:37  [ТС] 27
Посидел я не много по исравлял ошибки но вет эту процедуру не смог исправить
procedure TForm2.LoopSyncProc(handle: HSYNC; stream, data: DWORD; user: Pointer
); stdcall; //ошибка на вот этой LoopSyncProc строке.
что делать мне???

Добавлено через 18 секунд
Запуск трека я сделал

Добавлено через 13 минут
public
procedure LoopSyncProc(handle: HSYNC; stream, data: DWORD; user: Pointer); stdcall;//ругается так
unit2.pas(45,24) Error: Duplicate identifier "Handle"

а это уже код в процедуру
procedure TForm2.LoopSyncProc(handle: HSYNC; stream, data: DWORD; user: Pointer); stdcall//ругается unit2.pas(154,18) Error: method identifier expected

if Form2.Playing then //ошибка unit2.pas(157,10) Error: identifier idents no member "Playing"
Form2.Stop; //ошибка unit2.pas(158,7) Error: identifier idents no member "Stop"
if Form2.FCurrentRepeat<FRepeatCount then //ругается unit2.pas(159,27) Error: Identifier not found "eRepeatCount"
Form2.PlayCurrent
else
Form2.PlayNext;//ругается unit2.pas(162,7) Error: identifier idents no member "PlayNext"
end;

и все эти ошибки в этой процедуре я там все подправил а эти не смог исправвить((( помогите пожалуйста))) жду ответа если он конечно будет( а то я уже наверное надоел(((

Добавлено через 21 минуту
Вроде как исправил все осталось две ошибки с этими не смог разобратся вот они

procedure TForm2.LoopSyncProc(sync: HSYNC; stream, data: DWORD; user: Pointer
); stdcall;
begin
if Form2.Playing then //не могу исправить unit2.pas(159,10) Error: identifier idents no member "Playing"
Form2.Stop;
if Form2.FCurrentRepeat < eRepeatCount.text then // и здесь не смог исправить unit2.pas(161,9) Error: Incompatible types: got "LongInt" expected "AnsiString"
Form2.PlayCurrent
else
Form2.PlayNext;
end;

помогите мне с ними очень надо, за ранее спасибо!

Добавлено через 2 часа 5 минут
еще посидел и решил еще одну ошибку осталась одна ошибка что с ней сделать???
в этой строке
if Form2.Playing then //ошибка unit2.pas(159,10) Error: identifier idents no member "Playing"

Добавлено через 17 секунд
еще посидел и решил еще одну ошибку осталась одна ошибка что с ней сделать???
в этой строке
if Form2.Playing then //ошибка unit2.pas(159,10) Error: identifier idents no member "Playing"

Добавлено через 1 минуту
я так понимаю надо приписать ?
procedure playing;

Добавлено через 28 минут
нет не подействовала то что я написал что делать???
0
krapotkin
3418 / 3025 / 1047
Регистрация: 14.04.2014
Сообщений: 14,677
Записей в блоге: 15
28.05.2015, 11:21 28
procedure TForm2.LoopSyncProc
должно быть
procedure LoopSyncProc

Playing - надо написать функцию, которая возвращает True если сейчас что-то играет
и False - если нет

Добавлено через 1 минуту
уточняю
function TForm2.Playing:boolean;
0
_NE_KAKIX_IMEN_
-1 / 3 / 1
Регистрация: 20.05.2015
Сообщений: 445
28.05.2015, 13:49  [ТС] 29
Исправил там теперь ошибка здесь
procedure LoopSyncProc(sync: HSYNC; stream, data: DWORD; user: Pointer);
stdcall;
begin
if Form2.Playing then
Form2.Stop;
if Form2.FCurrentRepeat<fRepeatCount then //в этой unit2.pas(182,25) Error: Identifier not found "fRepeatCount"
Form2.PlayCurrent
else
Form2.PlayNext;
end;

Добавлено через 3 минуты
И вообще мне код нужен для того что бы я мог контролировать количество воспроизвдений(количество задаю в edit)

Добавлено через 23 минуты
исправьте меня что не правильно?

Добавлено через 1 минуту
все же жду ответа)

Добавлено через 5 минут
да и вообще какую функцию добавить надо сюда я так и не понял ((((
Playing - надо написать функцию, которая возвращает True если сейчас что-то играет
и False - если нет

public
function TForm2.Playing:boolean;//Для этой функции написал так
...

function TForm2.Playing: boolean;
begin
Form2.Playing;
end;
0
krapotkin
3418 / 3025 / 1047
Регистрация: 14.04.2014
Сообщений: 14,677
Записей в блоге: 15
28.05.2015, 15:35 30
Цитата Сообщение от Не_Профи Посмотреть сообщение
function TForm2.Playing: boolean;
begin
Form2.Playing;
end;
функция должная возвращать результат
эта - ничего не возвращает
да еще и вызывает саму себя у конкретного экземпляра Form2, а там опять и опять...
через пару секунда система скажет Stack Overflow или Out Of Memory
1
_NE_KAKIX_IMEN_
-1 / 3 / 1
Регистрация: 20.05.2015
Сообщений: 445
28.05.2015, 17:53  [ТС] 31
как будет правильно??

Добавлено через 3 минуты
if Form2.FCurrentRepeat<fRepeatCount then ошибка на строке
испрааааааааавтре меня
unit2.pas(214,25) Error: Identifier not found "fRepeatCount"

Добавлено через 1 час 33 минуты
может весь код скинуть?
0
krapotkin
3418 / 3025 / 1047
Регистрация: 14.04.2014
Сообщений: 14,677
Записей в блоге: 15
28.05.2015, 18:14 32
1. не всегда есть свободное время, чтобы сидеть на форуме непрерывно и править
2. скинуть проект
0
_NE_KAKIX_IMEN_
-1 / 3 / 1
Регистрация: 20.05.2015
Сообщений: 445
28.05.2015, 18:23  [ТС] 33
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
uses unit1;
 
{$R *.lfm}
 
 { TForm2 }
 
procedure TForm2.Button1Click(Sender: TObject);
begin
Form2.Hide;
Trayicon1.Visible:= True;
end;
 
procedure TForm2.eRepeatCountChange(Sender: TObject);
begin
if (StrToIntDef(eRepeatCount.text,1)<>fRepeatCount) then
fRepeatCount:=StrToIntDef(eRepeatCount.text,1);
end;
 
procedure TForm2.FormCreate(Sender: TObject);
begin
List:=TStringList.Create;
List.Add('тратата.mp3');  //добавить типа строка в СПИСОК List
List.Add('фываф.mp3');
List.Add('любая.mp3');
end;
 
procedure TForm2.FormDestroy(Sender: TObject);
begin
List.free; //очищаем
end;
 
procedure TForm2.SpeedButton2Click(Sender: TObject);
begin
 
if FCurTrack<=0 then exit;   //переключаем трек
dec(FCurTrack);
PlayTrack(FCurTrack);
end;
 
procedure TForm2.SpeedButton3Click(Sender: TObject);
begin
 
if FCurTrack>=List.Count-1 then exit; //переключаем трек
inc(FCurTrack);
PlayTrack(FCurTrack);
end;
 
procedure TForm2.SpeedButton4Click(Sender: TObject);
begin
PlayTrack(FCurTrack); //воспроизводи трек
end;
 
procedure TForm2.TrayIcon1Click(Sender: TObject);
begin
Form2.Show;                     //трей
Trayicon1.Visible:= False;
end;
 
procedure TForm2.TrayIcon1MouseMove(Sender: TObject; Shift: TShiftState; X,
  Y: Integer);
begin
  TrayIcon1.Hint:= 'Нажми меня';  //в трей
end;
 
procedure TForm2.SetRepeatCount(Value: integer);
begin
FRepeatCount:=Value;
if FRepeatCount<=0 then
FRepeatCount:=1;
if eRepeatCount.Text<>IntToStr(FRepeatCount) then
eRepeatCount.Text:=IntToStr(FRepeatCount);
end;
 
function TForm2.Playing: boolean;
begin
// Form2.Playing;
end;
 
procedure TForm2.PlayNext;
begin
 
end;
 
function TForm2.GetRepeatCount: integer;
begin
if FRepeatCount<=0 then exit(1)
else
exit(FRepeatCount);
end;
 
procedure TForm2.PlayCurrent;
begin
inc(Form2.FCurrentRepeat);
Playtrack(FCurTrack);
end;
 
procedure TForm2.PlayTrack(N: integer);
var s:string;
begin
if N>=List.Count then exit;
 
if BASS_ChannelIsActive(stream)<>BASS_ACTIVE_STOPPED then
Bass_channelstop(stream);
s:=List[N];
stream:= Bass_streamcreatefile(false, PChar(s),0,0,0);
//BASS_ChannelSetSync(Stream, BASS_SYNC_MIXTIME or BASS_SYNC_POS,0, nil); // set new sync
Bass_channelplay(stream,false);
end;
 
procedure TForm2.LoopSyncProc(sync: HSYNC);
 
begin
 
end;
 
procedure LoopSyncProc(sync: HSYNC; stream, data: DWORD; user: Pointer);
  stdcall;
begin
  if Form2.Playing then
Form2.Stop;
if Form2.FCurrentRepeat<RepeatCount then
Form2.PlayCurrent
else
Form2.PlayNext;
end;
 
 
{ TForm2 }
 
end.
Добавлено через 53 секунды
вот полностью проект вторая форма)))

Добавлено через 1 минуту
проверить полностью можете все по примеру ))) ну мне надо задать воспроизведения в Edit, вожу 5 раз он его проигрывает 5 раз без моего нажатия)) надеюсь поняли
0
krapotkin
3418 / 3025 / 1047
Регистрация: 14.04.2014
Сообщений: 14,677
Записей в блоге: 15
28.05.2015, 20:33 34
загадка - чем поможет тебе, что я написал программу??
возможно, в твоем варианте
из BASS_UNICODE or BASS_STREAM_AUTOFREE
нужно оставить только
BASS_STREAM_AUTOFREE
0
Вложения
Тип файла: 7z Bassproj.7z (2.65 Мб, 3 просмотров)
_NE_KAKIX_IMEN_
-1 / 3 / 1
Регистрация: 20.05.2015
Сообщений: 445
28.05.2015, 21:08  [ТС] 35
Это в принципе написана программа но я только на ней тренеруюсь а на самом деле программа не так выглядит) это будет нужная программа к примеру для детей! изучения языка))) я же и не только ее пишу для себя я для всех ее пишу)) так что поймите меня))) и если можете то помогите))))

Добавлено через 3 минуты
ух ты что что надо)))

Добавлено через 12 секунд
Благодарен)))) сильно)))

Добавлено через 41 секунду
Тему можно закрыть))))

Добавлено через 17 секунд
Проблема решилась)))
0
krapotkin
3418 / 3025 / 1047
Регистрация: 14.04.2014
Сообщений: 14,677
Записей в блоге: 15
28.05.2015, 21:13 36
"решилась" )))
0
_NE_KAKIX_IMEN_
-1 / 3 / 1
Регистрация: 20.05.2015
Сообщений: 445
29.05.2015, 00:22  [ТС] 37
да это все хорошо но у меня stringlist используется((( как мне быть а пример с листбоксом
0
krapotkin
3418 / 3025 / 1047
Регистрация: 14.04.2014
Сообщений: 14,677
Записей в блоге: 15
29.05.2015, 06:23 38
хоть что-то сделай сам
не?
1
_NE_KAKIX_IMEN_
-1 / 3 / 1
Регистрация: 20.05.2015
Сообщений: 445
30.05.2015, 21:59  [ТС] 39
я сам много сделал только мне эти функции надо были)) покажите пример с использование TsringList пожалуйста! спасибо) я не чего не увидел где вы объявили Hstream где объявили еще че то! короче как бы не чего не увидел! покажите с Stringlistom за ранее спасибо благодарен Вам)

Добавлено через 2 минуты
я даже не увидел где вы создали там список в лист боксе(( не увидел! ну помогите ((( только с стинглистом((( у меня в программе не должно видно быть его)))

Добавлено через 2 часа 21 минуту
так поможете мне ((( Пожалуйста такой же пример только со стринг листом((( я жду ответа(((

Добавлено через 7 часов 46 минут
Все короче надежды мало что поможете((( хотя надеялся на Вас ))) что поможете! ну пожалуйста помогите(((

Добавлено через 1 час 30 минут
Так что мне ждать или нет такой же пример только через Stringlist (((

Добавлено через 23 часа 36 минут
Народ в лист бокс как песни добавить??
подскажите(((( плиз(((
0
krapotkin
3418 / 3025 / 1047
Регистрация: 14.04.2014
Сообщений: 14,677
Записей в блоге: 15
01.06.2015, 06:19 40
вот добавился стринглист
0
Вложения
Тип файла: 7z Bass.7z (2.65 Мб, 3 просмотров)
01.06.2015, 06:19
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
01.06.2015, 06:19

Найти количество строк, в которых количество отрицательных элементов больше, чем количество положительных
Найти количество строк, в которых количество отрицательных элементов больше,...

Составьте программу, которая определяет количество отрицательных, количество положительных и количество нулей среди введенных чисел
С клавиатуры вводятся N чисел. Составьте программу, которая определяет...

Составте программу которая определяет количество отрицательных, количество положительных и количество нулей среди введённых чисел
С клавиатуры вводятся N чисел.Составте программу которая определяет количество...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
40
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru