我花了一些时间搞清楚如何在C#应用程序中嵌入QuickTime播放器。当我对我的成功感到非常高兴时,spcifications改为为我们的播放器提供自定义控件(而不是来自Apple QuickTime Control 2.0的控件)。
我搜索了很多例子或文档,但是像往常一样,Apple没有。 我觉得非常直白,就像这样:
if (m_QTPlayer.Movie != null)
{
m_QTPlayer.QuickTime.QTEvent += new
QTOLibrary._IQTObjectEvents_QTEventEventHandler(QuickTime_QTEvent);
m_QTPlayer.Movie.QTEvent += new
QTOLibrary._IQTObjectEvents_QTEventEventHandler(Movie_QTEvent);
}
但令人惊讶的是,我的Movie_QTEvent方法中没有任何事件。
有什么东西逃脱了我吗? 很难相信这是不可能的,但我看不出怎么做。
谢谢你, Mosu'
答案 0 :(得分:2)
即使事情没有我希望的那么好,我也找到了答案。
以下是一些不言自明的代码:
private void button1_Click(object sender, EventArgs e)
{
OpenFileDialog ofd = new OpenFileDialog();
if (ofd.ShowDialog() == DialogResult.OK)
{
axQTControl1.URL = ofd.FileName;
axQTControl1.Movie.EventListeners.Add(QTEventClassesEnum.qtEventClassAudio,
QTEventIDsEnum.qtEventAudioBalanceDidChange, null, null);
axQTControl1.Movie.EventListeners.Add(QTEventClassesEnum.qtEventClassTemporal,
QTEventIDsEnum.qtEventTimeWillChange, null, null);
axQTControl1.Movie.EventListeners.Add(QTEventClassesEnum.qtEventClassAudio,
QTEventIDsEnum.qtEventAudioVolumeDidChange, null, null);
axQTControl1.Movie.EventListeners.Add(QTEventClassesEnum.qtEventClassApplicationRequest,
QTEventIDsEnum.qtEventAudioBalanceDidChange, null, null);
axQTControl1.Movie.EventListeners.Add(QTOLibrary.QTEventClassesEnum.qtEventClassProgress,
QTOLibrary.QTEventIDsEnum.qtEventExportProgress, null, null);
axQTControl1.Movie.EventListeners.Add(QTEventClassesEnum.qtEventClassStateChange,
QTEventIDsEnum.qtEventMovieDidEnd, null, null);
axQTControl1.Movie.EventListeners.Add(QTEventClassesEnum.qtEventClassStateChange,
QTEventIDsEnum.qtEventRateWillChange, null, null);
}
}
private void axQTControl1_QTEvent(object sender, AxQTOControlLib._IQTControlEvents_QTEventEvent e)
{
Console.WriteLine(e.eventID.ToString());
}
如果链接不起作用谷歌图书: “QuickTime for .NET和COM开发人员 作者:John Cromie“
我希望有一种简单的方法来创建电影时间线,但直到现在我找不到它。 希望有人愿意并在此发布。
谢谢你, Mosu'