如何更改 xamarin 表单中的播放器图标
how to change player icon in xamarin forms
我需要一些人来帮助我如何以 xamarin 形式将播放器图标更改为我的播放器页面
这是我的代码:
PlayerPage.xaml
<StackLayout>
<Button x:Name="btnpause"
WidthRequest="20"
HeightRequest="20"
HorizontalOptions="Center"
ImageSource="pause.png" />
<Button x:Name="btnPlay"
WidthRequest="20"
HeightRequest="20"
HorizontalOptions="Center"
ImageSource="play.png" />
<Switch x:Name="switchLoop" IsToggled="False" />
</StackLayout>
PlayerPage.xaml.cs
ISimpleAudioPlayer player;
public PlayerPage()
{
InitializeComponent();
var player = Plugin.SimpleAudioPlayer.CrossSimpleAudioPlayer.Current;
player.Load("music.mp3");
btnPlay.Clicked += BtnPlayClicked;
switchLoop.Toggled += SwitchLoopToggled;
}
private void SwitchLoopToggled(object sender, ToggledEventArgs e)
{
Plugin.SimpleAudioPlayer.CrossSimpleAudioPlayer.Current.Loop = switchLoop.IsToggled;
}
private void BtnPlayClicked(object sender, EventArgs e)
{
Plugin.SimpleAudioPlayer.CrossSimpleAudioPlayer.Current.Play();
}
谢谢。
我想你的意思是这样,没有添加图像。请改用 ImageButton。
启动按钮播放和循环开关,当开关为 True 时,声音会自行重复。当开始显示暂停按钮时按下它,播放再次显示以恢复。示例项目在 Github https://github.com/borisoprit/MusicWhosebug
<StackLayout>
<ImageButton
x:Name="btnPlay"
HeightRequest="50"
HorizontalOptions="Center"
Source="Play.png"
VerticalOptions="Center"
WidthRequest="50" />
<ImageButton
x:Name="btnPause"
HeightRequest="50"
HorizontalOptions="Center"
Source="pause.png"
VerticalOptions="Center"
WidthRequest="50"
IsVisible="false"/>
<Label
HorizontalOptions="Start"
Text="Loop:"
VerticalOptions="Center" />
<Switch
x:Name="switchLoop"
HorizontalOptions="Start"
IsToggled="False"
VerticalOptions="Center" />
</StackLayout>
PlayerPage.xaml.cs 我也放置了 OnAppearing。这是 btnpause Isvisible = false 的状态。音乐结束播放按钮在那里,暂停再次隐藏。
public HeadProjectAudioPage()
{
InitializeComponent();
btnPause.IsVisible = false;
var player = Plugin.SimpleAudioPlayer.CrossSimpleAudioPlayer.Current;
player.PlaybackEnded += (sender, e) =>
{
btnPlay.IsVisible = true;
btnPause.IsVisible = false;
};
player.Load("running.mp3");
btnPlay.Clicked += BtnPlayClicked;
btnPause.Clicked += BtnPauseClicked;
switchLoop.Toggled += SwitchLoopToggled;
}
protected override void OnAppearing()
{
base.OnAppearing();
btnPause.IsVisible = false;
}
private void SwitchLoopToggled(object sender, ToggledEventArgs e)
{
Plugin.SimpleAudioPlayer.CrossSimpleAudioPlayer.Current.Loop = switchLoop.IsToggled;
}
private void BtnPlayClicked(object sender, EventArgs e)
{
btnPause.IsVisible = true;
btnPlay.IsVisible = false;
Plugin.SimpleAudioPlayer.CrossSimpleAudioPlayer.Current.Play();
}
private void BtnPauseClicked(object sender, EventArgs e)
{
btnPlay.IsVisible = true;
btnPause.IsVisible = false;
Plugin.SimpleAudioPlayer.CrossSimpleAudioPlayer.Current.Pause();
}
}
看看PlaybackEnded,当音频播放成功完成时引发。
您可以控制按钮在事件中的可见性。
代码示例
var player = Plugin.SimpleAudioPlayer.CrossSimpleAudioPlayer.Current;
player.PlaybackEnded += (sender,e)=>
{
btnPlay.IsVisible = true;
btnpause.IsVisible = false;
};
我需要一些人来帮助我如何以 xamarin 形式将播放器图标更改为我的播放器页面
这是我的代码:
PlayerPage.xaml
<StackLayout>
<Button x:Name="btnpause"
WidthRequest="20"
HeightRequest="20"
HorizontalOptions="Center"
ImageSource="pause.png" />
<Button x:Name="btnPlay"
WidthRequest="20"
HeightRequest="20"
HorizontalOptions="Center"
ImageSource="play.png" />
<Switch x:Name="switchLoop" IsToggled="False" />
</StackLayout>
PlayerPage.xaml.cs
ISimpleAudioPlayer player;
public PlayerPage()
{
InitializeComponent();
var player = Plugin.SimpleAudioPlayer.CrossSimpleAudioPlayer.Current;
player.Load("music.mp3");
btnPlay.Clicked += BtnPlayClicked;
switchLoop.Toggled += SwitchLoopToggled;
}
private void SwitchLoopToggled(object sender, ToggledEventArgs e)
{
Plugin.SimpleAudioPlayer.CrossSimpleAudioPlayer.Current.Loop = switchLoop.IsToggled;
}
private void BtnPlayClicked(object sender, EventArgs e)
{
Plugin.SimpleAudioPlayer.CrossSimpleAudioPlayer.Current.Play();
}
谢谢。
我想你的意思是这样,没有添加图像。请改用 ImageButton。
启动按钮播放和循环开关,当开关为 True 时,声音会自行重复。当开始显示暂停按钮时按下它,播放再次显示以恢复。示例项目在 Github https://github.com/borisoprit/MusicWhosebug
<StackLayout>
<ImageButton
x:Name="btnPlay"
HeightRequest="50"
HorizontalOptions="Center"
Source="Play.png"
VerticalOptions="Center"
WidthRequest="50" />
<ImageButton
x:Name="btnPause"
HeightRequest="50"
HorizontalOptions="Center"
Source="pause.png"
VerticalOptions="Center"
WidthRequest="50"
IsVisible="false"/>
<Label
HorizontalOptions="Start"
Text="Loop:"
VerticalOptions="Center" />
<Switch
x:Name="switchLoop"
HorizontalOptions="Start"
IsToggled="False"
VerticalOptions="Center" />
</StackLayout>
PlayerPage.xaml.cs 我也放置了 OnAppearing。这是 btnpause Isvisible = false 的状态。音乐结束播放按钮在那里,暂停再次隐藏。
public HeadProjectAudioPage()
{
InitializeComponent();
btnPause.IsVisible = false;
var player = Plugin.SimpleAudioPlayer.CrossSimpleAudioPlayer.Current;
player.PlaybackEnded += (sender, e) =>
{
btnPlay.IsVisible = true;
btnPause.IsVisible = false;
};
player.Load("running.mp3");
btnPlay.Clicked += BtnPlayClicked;
btnPause.Clicked += BtnPauseClicked;
switchLoop.Toggled += SwitchLoopToggled;
}
protected override void OnAppearing()
{
base.OnAppearing();
btnPause.IsVisible = false;
}
private void SwitchLoopToggled(object sender, ToggledEventArgs e)
{
Plugin.SimpleAudioPlayer.CrossSimpleAudioPlayer.Current.Loop = switchLoop.IsToggled;
}
private void BtnPlayClicked(object sender, EventArgs e)
{
btnPause.IsVisible = true;
btnPlay.IsVisible = false;
Plugin.SimpleAudioPlayer.CrossSimpleAudioPlayer.Current.Play();
}
private void BtnPauseClicked(object sender, EventArgs e)
{
btnPlay.IsVisible = true;
btnPause.IsVisible = false;
Plugin.SimpleAudioPlayer.CrossSimpleAudioPlayer.Current.Pause();
}
}
看看PlaybackEnded,当音频播放成功完成时引发。
您可以控制按钮在事件中的可见性。
代码示例
var player = Plugin.SimpleAudioPlayer.CrossSimpleAudioPlayer.Current;
player.PlaybackEnded += (sender,e)=>
{
btnPlay.IsVisible = true;
btnpause.IsVisible = false;
};