Vlc.DotNet处理过WPF停止死锁和扩张了Public函数的代码/Vlc.DotNet.Core.Interops/VlcManager.GetMediaTracksInformations.cs
(完整代码) 1KBusing System;
using Vlc.DotNet.Core.Interops.Signatures;
namespace Vlc.DotNet.Core.Interops
{
public sealed partial class VlcManager
{
[Obsolete("Use GetMediaTracks instead")]
public MediaTrackInfosStructure[] GetMediaTracksInformations(VlcMediaInstance mediaInstance)
{
if (mediaInstance == IntPtr.Zero)
throw new ArgumentException("Media instance is not initialized.");
IntPtr fullBuffer;
var cpt = myLibraryLoader.GetInteropDelegate<GetMediaTracksInformations>().Invoke(mediaInstance, out fullBuffer);
if (cpt <= 0)
return new MediaTrackInfosStructure[0];
var result = new MediaTrackInfosStructure[cpt];
var buffer = fullBuffer;
for (int index = 0; index < cpt; index++)
{
result[index] = MarshalHelper.PtrToStructure<MediaTrackInfosStructure>(buffer);
buffer = IntPtr.Size == 4
? new IntPtr(buffer.ToInt32() + MarshalHelper.SizeOf<MediaTrackInfosStructure>())
: new IntPtr(buffer.ToInt64() + MarshalHelper.SizeOf<MediaTrackInfosStructure>());
}
Free(fullBuffer);
return result;
}
}
}
24 小时内免费解锁 3 个项目,之后 1 算力/个。 规则说明
AI 解读 AI
登录后可用,每次 10 算力,解读结果公开显示在下面。
还没有人解读过这个文件。
