0
以下一些樣品我看到這個網站我嘗試下面的代碼:怎樣的byte []轉換成IMediaSample在C#
var byteArray = new byte[m.Length -10];
myMemoryStream.Position = 10;
myMemoryStream.Read(byteArray,0,(int)myMemoryStream.Length-10);
GCHandle pinnedArray = GCHandle.Alloc(byteArray, GCHandleType.Pinned);
IntPtr pointer = pinnedArray.AddrOfPinnedObject();
IMediaSample pSample = null;
Marshal.PtrToStructure(pointer,pSample);
pinnedArray.Free();
但是我收到一個「NullArgumentException」呼叫Marshal.PtrToStructure(指針,pSample時)。
當然,我知道這個錯誤的原因,我想知道的是正確的做法。
如果你需要更多的信息告訴我,我會盡快添加它。
請幫忙。
是的,這是不可避免的,當你爲累得PtrToStructure第二個參數(傳遞null)。它需要是一個Type或一個非null對象,以便Marshal類可以調用object.GetType()。該代碼段無法幫助您猜測您打算如何使用IMediaSample界面。您可以自己實現它,也可以使用庫存CMediaSample實現。沒有任何場景可以從一個字節中創建一個實例。 – 2012-03-17 21:33:49
你能提供一個使用CMediaSample的例子嗎?因爲我不知道你的意思,我剛從一週前開始使用這種語言,所以無知在各方面都很廣泛。 – Martin 2012-03-17 21:50:55