Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Мультимедиа в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 27.08.2013, 17:34   #11
Tboy
Пользователь
 
Регистрация: 19.08.2013
Сообщений: 17
По умолчанию

Как можно с помощью IMediaPosition по клику Button перейти на определенный отрывок из видео в проекте? Например на 00:32:00 из общей продолжительности приблизительно в час. Только без TrackBar! А с помощью Button он перекидывал его на нужный момент. Хотел бы увидеть примерный программный код! В интернете нашел (но как указать промежуток временной и куда)?

pos_bar.Value:=Getposition;
Tboy вне форума Ответить с цитированием
Старый 27.08.2013, 23:31   #12
raxp
Старожил
 
Регистрация: 29.09.2009
Сообщений: 9,742
По умолчанию

...при старте читаем общую длительность:
Код:
MediaSeeking.SetTimeFormat(TIME_FORMAT_MEDIA_TIME);
MediaSeeking.GetDuration(Duration);
Метод SetPositions интерфейса IMediaSeeking дасть возможность установить позицию:

Код:
var _pos: int64;


...
MediaSeeking.SetPositions(_pos, AM_SEEKING_AbsolutePositioning,  _pos, AM_SEEKING_NoPositioning)
Разработки и научно-технические публикации :: Видеоблог :: Твиттер
Radar systems engineer & Software developer of industrial automation
raxp вне форума Ответить с цитированием
Старый 28.08.2013, 16:25   #13
Tboy
Пользователь
 
Регистрация: 19.08.2013
Сообщений: 17
По умолчанию

Как сделать так чтобы один отрезок видео проигрывался по кругу(с начала до конца и обратно)? И как выделить начало и конец этого отрезка чтобы он дальше не проигрывал?
Tboy вне форума Ответить с цитированием
Старый 28.08.2013, 18:33   #14
raxp
Старожил
 
Регистрация: 29.09.2009
Сообщений: 9,742
По умолчанию

ставим в потоке условие на IMediaSeeking.GetCurrentPosition() и выполняем по условию IMediaSeeking.SetPositions().
Разработки и научно-технические публикации :: Видеоблог :: Твиттер
Radar systems engineer & Software developer of industrial automation
raxp вне форума Ответить с цитированием
Старый 04.09.2013, 20:46   #15
Tboy
Пользователь
 
Регистрация: 19.08.2013
Сообщений: 17
По умолчанию

Можете показать на примере - как именно выглядит код программы? c 01:02 до 02:03 (например) чтобы проигрывался и ВСЕ! Все это на Windows Media Player!

IMediaSeeking.GetCurrentPosition('0 1:02')
IMediaSeekng.SetPositions('01:02-02:03')
Буду благодарен!
Tboy вне форума Ответить с цитированием
Старый 04.09.2013, 22:14   #16
raxp
Старожил
 
Регистрация: 29.09.2009
Сообщений: 9,742
По умолчанию

Эдак вас перемкнуло. Данная тема и все примеры использования интерфейсов в ней с комментариями посвящены DirectShow, а не WMP.
Разработки и научно-технические публикации :: Видеоблог :: Твиттер
Radar systems engineer & Software developer of industrial automation
raxp вне форума Ответить с цитированием
Старый 05.09.2013, 09:06   #17
Tboy
Пользователь
 
Регистрация: 19.08.2013
Сообщений: 17
По умолчанию

Без разницы какой проигрыватель для меня! У меня формат avi! Ну а если серьезно как запрограммировать условие промежутка для проигрывания? Мне очень надо!
Tboy вне форума Ответить с цитированием
Старый 05.09.2013, 09:25   #18
raxp
Старожил
 
Регистрация: 29.09.2009
Сообщений: 9,742
По умолчанию

Цитата:
Без разницы какой проигрыватель для меня! У меня формат avi!
для вас оно конечно может и без разницы, но для интерфейсов разница есть и существенная. На вопрос навигации по медиа методами DirectShow уже есть ответ выше.

Касательно WMP, потрудитесь заглянуть в импорт хэдера WMPLib_TLB.pas и найдете там методы:
Код:
procedure PositionChange(oldPosition: Double; newPosition: Double); stdcall;
function Get_currentPosition: Double; safecall;
procedure Set_currentPosition(pdCurrentPosition: Double); safecall;
function Get_currentPositionString: WideString; safecall;
и свойства:
Код:
 property currentPosition: Double read Get_currentPosition write Set_currentPosition;
    property currentPositionString: WideString read Get_currentPositionString;
Цитата:
!
да, да, больше восклицательных знаков.
Разработки и научно-технические публикации :: Видеоблог :: Твиттер
Radar systems engineer & Software developer of industrial automation
raxp вне форума Ответить с цитированием
Старый 10.09.2013, 18:34   #19
Tboy
Пользователь
 
Регистрация: 19.08.2013
Сообщений: 17
По умолчанию

unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, OleCtrls, WMPLib_TLB;

type
TForm1 = class(TForm)
WindowsMediaPlayer1: TWindowsMediaPlayer;
Button1: TButton;
Button2: TButton;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin
WindowsMediaPlayer1.Controls.curren tPosition:=00;
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
WindowsMediaPlayer1.Controls.curren tPosition:=11;
end;

end.

Как сделать так, чтобы видео начиналось и заканчивалось на нужную позицию, но не останавливалось, а проигрывалось обратно сначала нужного фрагмента. Все это было циклически.
Tboy вне форума Ответить с цитированием
Старый 10.09.2013, 19:58   #20
raxp
Старожил
 
Регистрация: 29.09.2009
Сообщений: 9,742
По умолчанию

...поставить event на нужную позицию, при срабатывании устанавливать в новую позицию и снова отслеживать.

Добавлено

Наваял наглядный пример реализации циклического воспроизведения заданного участка видео-контента
http://www.youtube.com/watch?v=yTEDvM99he0

(никаких оберток, только прямые вызовы интерфейсов DirectShow)
Разработки и научно-технические публикации :: Видеоблог :: Твиттер
Radar systems engineer & Software developer of industrial automation

Последний раз редактировалось raxp; 10.09.2013 в 23:14.
raxp вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Перемотка (прокрутка) в плеере NBSTUDIO Мультимедиа в Delphi 12 08.05.2009 18:37
перемотка в mp3 плеере Mazaxaka Мультимедиа в Delphi 21 27.02.2009 01:09
незнаю с чего начать... а начать очень нужно ОСЯНЯ Помощь студентам 2 26.11.2008 20:08
Перемотка в mP3 плеере lionman Мультимедиа в Delphi 3 27.10.2008 21:21
Перемотка в TMediaPlayer Kn793 Компоненты Delphi 0 10.07.2008 11:02