You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
I want to use Xamarin MediaManager in my MonoGame iOS game to play videos. But the problem is that I always get this exception in the following line in Programs.cs:
UIApplication.Main(args, null, typeof(Program));
System.InvalidOperationException has been thrown. ViewController can't be null.
I get the exception after this code is executed in Game1.cs:
var gameController = Services.GetService(typeof(UIViewController)) as UIViewController;
gameController.PresentViewController(new DisplayVideoController(), true, null);
Is it possible to use MonoGame's gameController with Xamarin MediaManager?
Programs.cs:
using Foundation;
using MediaManager;
using UIKit;
using SharedCode;
namespace Testios
{
[Register("AppDelegate")]
class Program : UIApplicationDelegate
{
private static Game1 game;
internal static void RunGame()
{
game = new Game1();
game.Run();
}
static void Main(string[] args)
{
UIApplication.Main(args, null, typeof(Program));
}
public override void FinishedLaunching(UIApplication app)
{
CrossMediaManager.Current.Init();
RunGame();
}
}
}
DisplayVideoController.cs:
using MediaManager;
using MediaManager.Platforms.Ios.Video;
using UIKit;
namespace Testios
{
public class DisplayVideoController : UIViewController
{
public DisplayVideoController()
{
}
public override void ViewDidLoad()
{
var videoView = new VideoView(this.View.Frame)
{
AutoresizingMask = UIViewAutoresizing.All,
};
this.View!.AddSubview(videoView);
CrossMediaManager.Current.MediaPlayer.VideoView = videoView;
CrossMediaManager.Current.MediaItemFinished += Current_MediaItemFinished;
}
public override async void ViewWillAppear(bool animated)
{
base.ViewWillAppear(animated);
await CrossMediaManager.Current.Play("https://videos.pexels.com/video-files/7356431/7356431-hd_1280_720_25fps.mp4");
}
private void Current_MediaItemFinished(object? sender, MediaManager.Media.MediaItemEventArgs e)
{
this.DismissViewControllerAsync(true);
}
}
}
Game1.cs:
using Microsoft.Xna.Framework;
using Microsoft.Xna.Framework.Graphics;
using MediaManager;
using Microsoft.Xna.Framework.Media;
namespace SharedCode
{
public class Game1 : Game
{
private GraphicsDeviceManager _graphics;
private SpriteBatch _spriteBatch;
public Game1()
{
_graphics = new GraphicsDeviceManager(this);
Content.RootDirectory = "Content";
IsMouseVisible = true;
}
protected override void Initialize()
{
base.Initialize();
}
protected override async void LoadContent()
{
_spriteBatch = new SpriteBatch(GraphicsDevice);
var gameController = Services.GetService(typeof(UIViewController)) as UIViewController;
gameController.PresentViewController(new DisplayVideoController(), true, null);
}
protected override void Update(GameTime gameTime)
{
base.Update(gameTime);
}
protected override void Draw(GameTime gameTime)
{
GraphicsDevice.Clear(Color.CornflowerBlue);
base.Draw(gameTime);
}
}
}
The text was updated successfully, but these errors were encountered:
💬 Questions and Help
I want to use Xamarin MediaManager in my MonoGame iOS game to play videos. But the problem is that I always get this exception in the following line in Programs.cs:
UIApplication.Main(args, null, typeof(Program));
I get the exception after this code is executed in Game1.cs:
Is it possible to use MonoGame's gameController with Xamarin MediaManager?
Programs.cs:
DisplayVideoController.cs:
Game1.cs:
The text was updated successfully, but these errors were encountered: