Added BackCommand to video player window
This commit is contained in:
@@ -6,26 +6,23 @@
|
|||||||
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
|
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
|
||||||
mc:Ignorable="d"
|
mc:Ignorable="d"
|
||||||
d:DesignHeight="450" d:DesignWidth="800"
|
d:DesignHeight="450" d:DesignWidth="800"
|
||||||
>
|
Unloaded="UserControl_Unloaded">
|
||||||
|
|
||||||
<Grid>
|
<Grid>
|
||||||
<Grid x:Name="videoPlayer">
|
<vlc:VideoView x:Name="VideoView" Panel.ZIndex="1">
|
||||||
<vlc:VideoView x:Name="VideoView" Panel.ZIndex="1">
|
<StackPanel Panel.ZIndex="10" IsHitTestVisible="True" Background="#01FFFFFF"
|
||||||
<StackPanel Panel.ZIndex="2" Opacity="0.9"
|
|
||||||
IsHitTestVisible="True"
|
|
||||||
HorizontalAlignment="Stretch" MouseLeftButtonDown="MyUserControl_MouseDown"
|
HorizontalAlignment="Stretch" MouseLeftButtonDown="MyUserControl_MouseDown"
|
||||||
TouchDown="MyUserControl_TouchDown" >
|
TouchDown="MyUserControl_TouchDown" >
|
||||||
<Grid x:Name="overlayPanel" Visibility="Collapsed" >
|
<Grid x:Name="overlayPanel" Visibility="Collapsed" >
|
||||||
<Grid.ColumnDefinitions>
|
<Grid.ColumnDefinitions>
|
||||||
<ColumnDefinition />
|
<ColumnDefinition />
|
||||||
<ColumnDefinition />
|
<ColumnDefinition />
|
||||||
<ColumnDefinition />
|
<ColumnDefinition />
|
||||||
<ColumnDefinition />
|
<ColumnDefinition />
|
||||||
</Grid.ColumnDefinitions>
|
</Grid.ColumnDefinitions>
|
||||||
<Button Grid.Column="0" Content="Pause" HorizontalAlignment="Stretch" Click="PauseButton_Click" />
|
<Button Grid.Column="0" Content="Back" HorizontalAlignment="Stretch" Command="{Binding BackCommand}" />
|
||||||
</Grid>
|
<Button Grid.Column="1" Content="Pause" HorizontalAlignment="Stretch" Click="PauseButton_Click" />
|
||||||
</StackPanel>
|
</Grid>
|
||||||
</vlc:VideoView>
|
</StackPanel>
|
||||||
</Grid>
|
</vlc:VideoView>
|
||||||
</Grid>
|
</Grid>
|
||||||
</UserControl>
|
</UserControl>
|
||||||
|
|||||||
@@ -3,6 +3,7 @@ using LibVLCSharp.WPF;
|
|||||||
using System.IO;
|
using System.IO;
|
||||||
using System.Windows;
|
using System.Windows;
|
||||||
using System.Windows.Controls;
|
using System.Windows.Controls;
|
||||||
|
using System.Windows.Forms.Integration;
|
||||||
using System.Windows.Input;
|
using System.Windows.Input;
|
||||||
|
|
||||||
namespace TV_Player
|
namespace TV_Player
|
||||||
@@ -77,7 +78,7 @@ namespace TV_Player
|
|||||||
VideoView.MediaPlayer.Play(media);
|
VideoView.MediaPlayer.Play(media);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
private void MyUserControl_MouseDown(object sender, MouseButtonEventArgs e)
|
private void MyUserControl_MouseDown(object sender, MouseButtonEventArgs e)
|
||||||
{
|
{
|
||||||
@@ -110,5 +111,10 @@ namespace TV_Player
|
|||||||
{
|
{
|
||||||
overlayPanel.Visibility = Visibility.Collapsed;
|
overlayPanel.Visibility = Visibility.Collapsed;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void UserControl_Unloaded(object sender, RoutedEventArgs e)
|
||||||
|
{
|
||||||
|
VideoView.MediaPlayer.Dispose();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,4 +1,6 @@
|
|||||||
using System.Windows.Input;
|
using CommunityToolkit.Mvvm.Input;
|
||||||
|
using System.Windows.Input;
|
||||||
|
using TV_Player.ViewModels;
|
||||||
|
|
||||||
namespace TV_Player
|
namespace TV_Player
|
||||||
{
|
{
|
||||||
@@ -6,43 +8,32 @@ namespace TV_Player
|
|||||||
public class PlayerViewModel: ObservableViewModelBase
|
public class PlayerViewModel: ObservableViewModelBase
|
||||||
{
|
{
|
||||||
|
|
||||||
private readonly M3UInfo _currentProgram;
|
|
||||||
|
|
||||||
private string _urlSource;
|
private M3UInfo _currentProgram;
|
||||||
public string URLSource
|
public M3UInfo SelectedProgram
|
||||||
{
|
{
|
||||||
get => _urlSource;
|
get => _currentProgram;
|
||||||
set => SetProperty(ref _urlSource, value);
|
set => SetProperty(ref _currentProgram, value);
|
||||||
}
|
}
|
||||||
|
|
||||||
public GroupInfo SelectedItem { get; set; }
|
public M3UInfo SelectedItem { get; set; }
|
||||||
public ICommand PlayCommand { get; }
|
public ICommand BackCommand { get; }
|
||||||
|
|
||||||
public PlayerViewModel(M3UInfo selectedProgram)
|
public PlayerViewModel(M3UInfo selectedProgram)
|
||||||
{
|
{
|
||||||
_currentProgram = selectedProgram;
|
_currentProgram = selectedProgram;
|
||||||
//PlayM3U8(_currentProgram.Url);
|
BackCommand = new RelayCommand(OnButtonBackClick);
|
||||||
//_libVLC = new LibVLC();
|
|
||||||
//_mediaPlayer = new MediaPlayer(new Media(_libVLC, new Uri(_currentProgram.Url)));
|
|
||||||
//_mediaPlayer.Play();
|
|
||||||
//PlayCommand = new Command(OnPlayButtonClicked);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private void OnPlayButtonClicked()
|
private void OnButtonBackClick()
|
||||||
{
|
{
|
||||||
PlayM3U8(_currentProgram.Url);
|
var groupInfo = new GroupInfo() { Name = _currentProgram.GroupTitle, Count = 0 };
|
||||||
|
|
||||||
|
var programListViewModel = new ProgramsListViewModel(groupInfo);
|
||||||
|
var conrtrol = new ProgramsList();
|
||||||
|
TVPlayerViewModel.Instance.SetPageContext(conrtrol, programListViewModel);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void PlayM3U8(string url)
|
|
||||||
{
|
|
||||||
try
|
|
||||||
{
|
|
||||||
URLSource = _currentProgram.Url;
|
|
||||||
}
|
|
||||||
catch (Exception ex)
|
|
||||||
{
|
|
||||||
// Handle exceptions
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -24,13 +24,9 @@ namespace TV_Player
|
|||||||
|
|
||||||
private void OnItemSelected()
|
private void OnItemSelected()
|
||||||
{
|
{
|
||||||
//var navigation = (INavigation)Application.Current.MainPage.Navigation;
|
|
||||||
|
|
||||||
var programListViewModel = new ProgramsListViewModel(SelectedItem);
|
var programListViewModel = new ProgramsListViewModel(SelectedItem);
|
||||||
var conrtrol = new ProgramsList();
|
var conrtrol = new ProgramsList();
|
||||||
TVPlayerViewModel.Instance.SetPageContext(conrtrol, programListViewModel);
|
TVPlayerViewModel.Instance.SetPageContext(conrtrol, programListViewModel);
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -24,22 +24,10 @@ namespace TV_Player
|
|||||||
|
|
||||||
private void OnItemSelected()
|
private void OnItemSelected()
|
||||||
{
|
{
|
||||||
|
|
||||||
var playerViewModel = new PlayerViewModel(SelectedItem);
|
var playerViewModel = new PlayerViewModel(SelectedItem);
|
||||||
var conrtrol = new VideoPlayer();
|
var conrtrol = new VideoPlayer();
|
||||||
conrtrol.SourceUrl = SelectedItem.Url;
|
conrtrol.SourceUrl = SelectedItem.Url;
|
||||||
TVPlayerViewModel.Instance.SetPageContext(conrtrol, playerViewModel);
|
TVPlayerViewModel.Instance.SetPageContext(conrtrol, playerViewModel);
|
||||||
//var navigation = (INavigation)Application.Current.MainPage.Navigation;
|
|
||||||
|
|
||||||
//var playerViewModel = new PlayerViewModel(SelectedItem);
|
|
||||||
|
|
||||||
//// Create a new SecondPage and set its BindingContext to the ViewModel
|
|
||||||
//var playerPage = new PlayerPage
|
|
||||||
//{
|
|
||||||
// BindingContext = playerViewModel
|
|
||||||
//};
|
|
||||||
//// Navigate to the OtherPage
|
|
||||||
//navigation.PushAsync(playerPage);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user