Я пытаюсь установить скорость воспроизведения в directshow, и весь фильтр говорит, что он может установить его, и когда я это сделаю, тогда получите скорость, она, похоже, применяется, но скорость воспроизведения не отражают это изменение, и я не уверен, почему.SetRate (0.5) не работает
rate = 0.5;
mediaSeek.SetRate(rate);
mediaSeek.GetRate(out rate);
// rate = 0.5.
Я сделал это в другом графике, что я подключен фильтры вручную, и она работала отлично, но на этот раз я поставил граф вверх, как так:
filterGraph = graph as IFilterGraph2;
if (filterGraph != null)
{
IBaseFilter sourceFilter;
filterGraph.AddSourceFilter(source, source, out sourceFilter);
IEnumPins pinEnum;
sourceFilter.EnumPins(out pinEnum);
var fetched = IntPtr.Zero;
IPin[] pins = { null };
while (pinEnum.Next(pins.Length, pins, fetched) == 0)
{
filterGraph.RenderEx(pins[0], AMRenderExFlags.RenderToExistingRenderers, IntPtr.Zero);
Marshal.ReleaseComObject(pins[0]);
}
Marshal.ReleaseComObject(pinEnum);
Marshal.ReleaseComObject(sourceFilter);
}