Hallo meine lieben Freunde,
ich arbeite zurzeit an einem 2D-Plattformer in Monogame und habe ein Problem:
Aus Kompatiblitätsgründen war es mein Ziel sowohl XInput als auch DirectInput zu unterstützen(es ist einfach ein befriedigendes Gefühl ein Spiel auf einem Billo-Controller vom Lidl zu spielen, welcher nur DirectInput supportet )
Da MonoGame nur XInput nativ unterstützt, habe ich bis jetzt SharpDX verwendet um Direct Input kompatibel zu sein. Nun bin ich allerdings an einem Punkt angelangt, an welchem ich ein Video abspielen möchte.
Wenn ich nun aber ein Video über die ContentPipeline laden möchte, wirft er mir eine TypeLoadException:
Spoiler anzeigen
System.TypeLoadException
HResult=0x80131522
Nachricht = Der Typ "System.Reflection.SharpDXTypeExtensions" in der Assembly "SharpDX, Version=4.2.0.0, Culture=neutral, PublicKeyToken=b4dcf0f35e5521f1" konnte nicht geladen werden.
Quelle = SharpDX.MediaFoundation
Stapelüberwachung:
bei SharpDX.MediaFoundation.MediaAttributes.Set[T](Guid guidKey, T value)
bei Microsoft.Xna.Framework.Media.Video.PlatformInitialize()
bei Microsoft.Xna.Framework.Content.VideoReader.Read(ContentReader input, Video existingInstance)
bei Microsoft.Xna.Framework.Content.ContentTypeReader`1.Read(ContentReader input, Object existingInstance)
bei Microsoft.Xna.Framework.Content.ContentReader.InnerReadObject[T](T existingInstance)
bei Microsoft.Xna.Framework.Content.ContentReader.ReadObject[T]()
bei Microsoft.Xna.Framework.Content.ContentReader.ReadAsset[T]()
bei Microsoft.Xna.Framework.Content.ContentManager.ReadAsset[T](String assetName, Action`1 recordDisposableObject)
bei Microsoft.Xna.Framework.Content.ContentManager.Load[T](String assetName)
bei Emmond.IG.VidPlayer.LoadContent() in C:\Users\Creme\Desktop\Luminous Friends\Beacon\Beacon\HUD\VideoPlayer.vb: Zeile22
bei Emmond.Emmond.LoadContent() in C:\Users\Creme\Desktop\Luminous Friends\Beacon\Beacon\Emmond.vb: Zeile157
bei Microsoft.Xna.Framework.Game.Initialize()
bei Emmond.Emmond.Initialize() in C:\Users\Creme\Desktop\Luminous Friends\Beacon\Beacon\Emmond.vb: Zeile102
bei Microsoft.Xna.Framework.Game.DoInitialize()
bei Microsoft.Xna.Framework.Game.Run(GameRunBehavior runBehavior)
bei Microsoft.Xna.Framework.Game.Run()
bei Emmond.Program.Main() in C:\Users\Creme\Desktop\Luminous Friends\Beacon\Beacon\Program.vb: Zeile51
Ich vermute, dass es daran liegt, dass die SharpDX-Version, welche von Monogame verwendet wird und diejenige, welche ich per NuGet hinzugefügt habe, in Konflikt geraten.
Was kann ich tun? Gibt es noch eine andere Möglichkeit auf DirectInput zuzugreifen? Oder soll ich den DirectInput-Support ganz lassen?
Grüße,
Mircosofter2206
PS: Wenn ich die Reference auf SharpDX rauswerfe, lädt das Video ohne Probleme
ich arbeite zurzeit an einem 2D-Plattformer in Monogame und habe ein Problem:
Aus Kompatiblitätsgründen war es mein Ziel sowohl XInput als auch DirectInput zu unterstützen(es ist einfach ein befriedigendes Gefühl ein Spiel auf einem Billo-Controller vom Lidl zu spielen, welcher nur DirectInput supportet )
Da MonoGame nur XInput nativ unterstützt, habe ich bis jetzt SharpDX verwendet um Direct Input kompatibel zu sein. Nun bin ich allerdings an einem Punkt angelangt, an welchem ich ein Video abspielen möchte.
Wenn ich nun aber ein Video über die ContentPipeline laden möchte, wirft er mir eine TypeLoadException:
System.TypeLoadException
HResult=0x80131522
Nachricht = Der Typ "System.Reflection.SharpDXTypeExtensions" in der Assembly "SharpDX, Version=4.2.0.0, Culture=neutral, PublicKeyToken=b4dcf0f35e5521f1" konnte nicht geladen werden.
Quelle = SharpDX.MediaFoundation
Stapelüberwachung:
bei SharpDX.MediaFoundation.MediaAttributes.Set[T](Guid guidKey, T value)
bei Microsoft.Xna.Framework.Media.Video.PlatformInitialize()
bei Microsoft.Xna.Framework.Content.VideoReader.Read(ContentReader input, Video existingInstance)
bei Microsoft.Xna.Framework.Content.ContentTypeReader`1.Read(ContentReader input, Object existingInstance)
bei Microsoft.Xna.Framework.Content.ContentReader.InnerReadObject[T](T existingInstance)
bei Microsoft.Xna.Framework.Content.ContentReader.ReadObject[T]()
bei Microsoft.Xna.Framework.Content.ContentReader.ReadAsset[T]()
bei Microsoft.Xna.Framework.Content.ContentManager.ReadAsset[T](String assetName, Action`1 recordDisposableObject)
bei Microsoft.Xna.Framework.Content.ContentManager.Load[T](String assetName)
bei Emmond.IG.VidPlayer.LoadContent() in C:\Users\Creme\Desktop\Luminous Friends\Beacon\Beacon\HUD\VideoPlayer.vb: Zeile22
bei Emmond.Emmond.LoadContent() in C:\Users\Creme\Desktop\Luminous Friends\Beacon\Beacon\Emmond.vb: Zeile157
bei Microsoft.Xna.Framework.Game.Initialize()
bei Emmond.Emmond.Initialize() in C:\Users\Creme\Desktop\Luminous Friends\Beacon\Beacon\Emmond.vb: Zeile102
bei Microsoft.Xna.Framework.Game.DoInitialize()
bei Microsoft.Xna.Framework.Game.Run(GameRunBehavior runBehavior)
bei Microsoft.Xna.Framework.Game.Run()
bei Emmond.Program.Main() in C:\Users\Creme\Desktop\Luminous Friends\Beacon\Beacon\Program.vb: Zeile51
Ich vermute, dass es daran liegt, dass die SharpDX-Version, welche von Monogame verwendet wird und diejenige, welche ich per NuGet hinzugefügt habe, in Konflikt geraten.
Was kann ich tun? Gibt es noch eine andere Möglichkeit auf DirectInput zuzugreifen? Oder soll ich den DirectInput-Support ganz lassen?
Grüße,
Mircosofter2206
PS: Wenn ich die Reference auf SharpDX rauswerfe, lädt das Video ohne Probleme
Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Mircosofter2206“ ()