Вверх ↑
Этот топик читают: Гость
Ответов: 1926
Рейтинг: 172
#1: 2015-03-24 17:55:35 ЛС | профиль | цитата
Есть там такой код:
#pas
FMedia.Play(WndH,0,FMedia.Length);
(стр. 93)
По идее, второй параметр отвечает за начальную позицию, третий - за длину играемого участка, т.е. можно проиграть отрывок. Но эти параметры не работают - проверял! (HiAsm 4.04 build 185 и обновлённый с SVN AltBuild)

Посмотрел - в Media.pas на 764-й строке зачем-то стоит exit, из-за этого дальнейший код не выполняется, где как раз реализация указанных параметров! Нужен ли там exit? Если нет, может, удалить его на фиг?

Если удалять, то придётся править и HIMediaPlayer.pas.
В описании ф-ции Play в Media.pas сказано:
If value passed for StartPos is -1, current position is used to start from.
If -1 passed as PlayLength, multimedia is playing to the end of media.

А на 122-123-й строке HIMediaPlayer.pas:
#pas
FMedia.Position := ToInteger(_Data);
FMedia.Play(WndH,0,FMedia.Length);

Т.е. уже после установки позиции происходит запуск проигрывания с нулевой позиции! Передавать нужно -1.
карма: 9
0
Ответов: 2267
Рейтинг: 676
#2: 2015-03-24 19:05:23 ЛС | профиль | цитата
3042, если правильно понял:
#ini
[About]
Version=1.0
Author=Dilma

[Type]
Class=Element
Info=Проигрывание WAV, MP3, WMA и AVI файлов

[Property]
Filename=Содержит имя проигрываемого файла по-умолчанию|2|
Start=Определяет стартовую позицию проигрывания|1|0
Finish=Определяет финальную позицию проигрывания (при -1 до конца)|1|-1
VideoScale=Масштабирование области проигрывания видео: None - не масштабировать, Center - выровнять по центру, Full - растянуть на все окно|4|0|None,Center,Full

[Methods]
doPlay=Проигрывает медиа-файл (см. FileName)|1|
doStop=Останавливает проигрывание файла|1|
doPause=Включает Паузу|1|
doPosition=Устанавливает позицию файла|1|
*doClose=Останавливает воспроизведение файла и освобождает ресурсы, занятые им|1|
onEndPlay=Событие происходит всякий раз при окончании проигрывания файла (исключая принудительную остановку методами Stop и Pause)|2|
Position=Содержит позицию текущего места проигрывания файла (в миллисекундах)|3|1
Length=Содержит длину проигрываемого файла (в миллисекундах)|3|1
FileName=Определяет имя проигрываемого файла|4|2
Handle=Идентификатор окна или элемента управления для вывода видео изображения|4|1
*Start=Определяет стартовую позицию проигрывания|4|1
*Finish=Определяет финальную позицию проигрывания (при -1 до конца)|4|1
(с соответствующими изменениями в коде)
карма: 11

0
Ответов: 1926
Рейтинг: 172
#3: 2015-03-24 21:27:25 ЛС | профиль | цитата
sla8a, возможно и так. Просто я столкнулся с проблемой, когда захотел проигрывать кое-какой файл с 5-й по 10-ю секунды. Я решил реализовать это так:
code_35378.txt

Но таймер не даёт возможность точно установить интервал: всё время разные значения! Кроме того, прогресс почему-то до конца не доходит (хотя это уже вторая проблема).
карма: 9
0
файлы: 1code_35378.txt [1.3KB] [390]
3
Сообщение
...
Прикрепленные файлы
(файлы не залиты)