Mac 和 UWP (Xamarin.Forms) 中 LibVLCSharp VideoView 的自定义渲染器
Custom renderer for LibVLCSharp VideoView in Mac and UWP (Xamarin.Forms)
我正在尝试使用来自 LibVLCSharp 的 VideoView Mac 在 Xamarin.Forms 中创建自定义渲染器以在 Xamarin.Forms mac 中播放视频应用。到目前为止我只有音频没有视频。
这是我用于 mac 实现的 VideoPlayerRenderer
[assembly: ExportRenderer(typeof(Player.VideoPlayer), typeof(Player.Mac.VideoPlayerRenderer))]
namespace Player.Mac {
public class VideoPlayerRenderer : ViewRenderer<VideoPlayer, LibVLCSharp.Platforms.Mac.VideoView> {
LibVLCSharp.Platforms.Mac.VideoView video_view;
public VideoPlayerRenderer() {
}
protected override void OnElementChanged (ElementChangedEventArgs<VideoPlayer> e) {
base.OnElementChanged (e);
if(e.OldElement != null) {
}
if(e.NewElement != null) {
if(Control == null) {
video_view = new LibVLCSharp.Platforms.Mac.VideoView();
video_view.MediaPlayer = e.NewElement.get_media_player();
SetNativeControl(video_view);
}
}
}
}
}
和 VideoPlayer Xamarin.Forms 视图
public class VideoPlayer : View {
LibVLC lib_vlc;
MediaPlayer media_player;
public VideoPlayer() {
}
public void init(LibVLC lib_vlc, MediaPlayer media_player) {
this.lib_vlc = lib_vlc;
this.media_player = media_player;
}
public void play() {
this.media_player.Play();
}
public MediaPlayer get_media_player() {
return this.media_player;
}
}
我在 UWP 上尝试了相同的方法,但我没有得到音频或视频。所以我想知道这是否朝着错误的方向发展,如果是这样,您应该如何为 mac/uwp 使用 LibVLCSharp?
您不必创建自己的渲染器,因为已经有渲染器了。
来自LibVLCSharp.Forms documentation :
This package also contains the views for the following platforms:
- Android
- iOS
- Mac
UWP 对 Xamarin.Forms 的支持目前存在我们希望通过 LVS 4/libvlc 4 版本解决的障碍。有关详细说明,请参阅 this issue。
我正在尝试使用来自 LibVLCSharp 的 VideoView Mac 在 Xamarin.Forms 中创建自定义渲染器以在 Xamarin.Forms mac 中播放视频应用。到目前为止我只有音频没有视频。
这是我用于 mac 实现的 VideoPlayerRenderer
[assembly: ExportRenderer(typeof(Player.VideoPlayer), typeof(Player.Mac.VideoPlayerRenderer))]
namespace Player.Mac {
public class VideoPlayerRenderer : ViewRenderer<VideoPlayer, LibVLCSharp.Platforms.Mac.VideoView> {
LibVLCSharp.Platforms.Mac.VideoView video_view;
public VideoPlayerRenderer() {
}
protected override void OnElementChanged (ElementChangedEventArgs<VideoPlayer> e) {
base.OnElementChanged (e);
if(e.OldElement != null) {
}
if(e.NewElement != null) {
if(Control == null) {
video_view = new LibVLCSharp.Platforms.Mac.VideoView();
video_view.MediaPlayer = e.NewElement.get_media_player();
SetNativeControl(video_view);
}
}
}
}
}
和 VideoPlayer Xamarin.Forms 视图
public class VideoPlayer : View {
LibVLC lib_vlc;
MediaPlayer media_player;
public VideoPlayer() {
}
public void init(LibVLC lib_vlc, MediaPlayer media_player) {
this.lib_vlc = lib_vlc;
this.media_player = media_player;
}
public void play() {
this.media_player.Play();
}
public MediaPlayer get_media_player() {
return this.media_player;
}
}
我在 UWP 上尝试了相同的方法,但我没有得到音频或视频。所以我想知道这是否朝着错误的方向发展,如果是这样,您应该如何为 mac/uwp 使用 LibVLCSharp?
您不必创建自己的渲染器,因为已经有渲染器了。
来自LibVLCSharp.Forms documentation :
This package also contains the views for the following platforms:
- Android
- iOS
- Mac
UWP 对 Xamarin.Forms 的支持目前存在我们希望通过 LVS 4/libvlc 4 版本解决的障碍。有关详细说明,请参阅 this issue。