我参考了网上的例子(http://icardoso.free.fr/projects/ManWMFSaples.php),使用其中的CopyWMV分割媒体,从源媒体的StartTime开始分割到媒体结束,发现并不能正常生成新媒体,后来将
Reader.SetRange(StartTime, Duration);
for (uint StreamsRead = 0; StreamsRead < StreamCount; )
{
Reader.GetNextSample(...)
WriterAdvanced.WriteStreamSample(...)
}
改成
while SUCCEEDED(hr) do
{
hr = Reader.GetNextSample(...);
if failed(hr) {break;}
WriterAdvanced.WriteStreamSample(...);
}
生成了新媒体,但是新媒体的起始画面与源媒体中StartTime处的画面不同,貌似提前了2-3秒,请各位帮忙,多谢!
另外查看了微软的WMContainer(http://msdn.microsoft.com/en-us/ms696205(VS.85).aspx),有个IMFASFSplitter貌似有点帮助,也请熟悉的大侠提点一些啊
Reader.SetRange(StartTime, Duration);
for (uint StreamsRead = 0; StreamsRead < StreamCount; )
{
Reader.GetNextSample(...)
WriterAdvanced.WriteStreamSample(...)
}
改成
while SUCCEEDED(hr) do
{
hr = Reader.GetNextSample(...);
if failed(hr) {break;}
WriterAdvanced.WriteStreamSample(...);
}
生成了新媒体,但是新媒体的起始画面与源媒体中StartTime处的画面不同,貌似提前了2-3秒,请各位帮忙,多谢!
另外查看了微软的WMContainer(http://msdn.microsoft.com/en-us/ms696205(VS.85).aspx),有个IMFASFSplitter貌似有点帮助,也请熟悉的大侠提点一些啊
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货