mirror of
https://github.com/SubtitleEdit/subtitleedit.git
synced 2024-10-27 22:42:38 +01:00
QuartsPlayer (DirectShow) can now also play audio-only
git-svn-id: https://subtitleedit.googlecode.com/svn/trunk@928 99eadd0c-20b8-1223-b5c4-2a2b2df33de2
This commit is contained in:
parent
f81c645697
commit
108a325a0f
@ -122,6 +122,9 @@ namespace Nikse.SubtitleEdit.Logic.VideoPlayers
|
||||
{
|
||||
const int wsChild = 0x40000000;
|
||||
|
||||
string ext = System.IO.Path.GetExtension(videoFileName).ToLower();
|
||||
bool isAudio = ext == ".mp3" || ext == ".wav" || ext == ".wma" || ext == ".m4a";
|
||||
|
||||
OnVideoLoaded = onVideoLoaded;
|
||||
OnVideoEnded = onVideoEnded;
|
||||
|
||||
@ -129,12 +132,19 @@ namespace Nikse.SubtitleEdit.Logic.VideoPlayers
|
||||
_owner = ownerControl;
|
||||
_quartzFilgraphManager = new FilgraphManager();
|
||||
_quartzFilgraphManager.RenderFile(VideoFileName);
|
||||
_quartzVideo = _quartzFilgraphManager as IVideoWindow;
|
||||
_quartzVideo.Owner = (int)ownerControl.Handle;
|
||||
_quartzVideo.SetWindowPosition(0, 0, ownerControl.Width, ownerControl.Height);
|
||||
_quartzVideo.WindowStyle = wsChild;
|
||||
|
||||
if (!isAudio)
|
||||
{
|
||||
_quartzVideo = _quartzFilgraphManager as IVideoWindow;
|
||||
_quartzVideo.Owner = (int)ownerControl.Handle;
|
||||
_quartzVideo.SetWindowPosition(0, 0, ownerControl.Width, ownerControl.Height);
|
||||
_quartzVideo.WindowStyle = wsChild;
|
||||
}
|
||||
_quartzFilgraphManager.Run();
|
||||
(_quartzFilgraphManager as IBasicVideo).GetVideoSize(out _sourceWidth, out _sourceHeight);
|
||||
|
||||
if (!isAudio)
|
||||
(_quartzFilgraphManager as IBasicVideo).GetVideoSize(out _sourceWidth, out _sourceHeight);
|
||||
|
||||
_owner.Resize += OwnerControlResize;
|
||||
_mediaPosition = (IMediaPosition)_quartzFilgraphManager;
|
||||
if (OnVideoLoaded != null)
|
||||
@ -150,7 +160,8 @@ namespace Nikse.SubtitleEdit.Logic.VideoPlayers
|
||||
_videoEndTimer.Tick += VideoEndTimerTick;
|
||||
_videoEndTimer.Start();
|
||||
|
||||
_quartzVideo.MessageDrain = (int)ownerControl.Handle;
|
||||
if (!isAudio)
|
||||
_quartzVideo.MessageDrain = (int)ownerControl.Handle;
|
||||
}
|
||||
|
||||
public static VideoInfo GetVideoInfo(string videoFileName)
|
||||
|
Loading…
Reference in New Issue
Block a user