播放器
来源:互联网 发布:网络诗歌一百首诗歌 编辑:程序博客网 时间:2024/04/25 04:09
1.前台代码:
<Grid x:Name="LayoutRoot" Background="White" Height="237" Width="499">
<MediaElement Height="0" HorizontalAlignment="Left" Margin="12,12,0,0" Name="haha" VerticalAlignment="Top" Width="0" LoadedBehavior="Manual" MediaEnded="myElement_MediaEnded" />
<Button Content="播放" Height="23" HorizontalAlignment="Left" Margin="10,41,0,0" Name="button1" VerticalAlignment="Top" Width="75" Click="button1_Click" />
<Button Content="暂停" Height="23" HorizontalAlignment="Left" Margin="111,41,0,0" Name="button2" VerticalAlignment="Top" Width="75" Click="button2_Click" />
<Button Content="停止" Height="23" HorizontalAlignment="Left" Margin="211,41,0,0" Name="button3" VerticalAlignment="Top" Width="75" Click="button3_Click" />
<Button Content="静音" Height="23" HorizontalAlignment="Left" Margin="319,41,0,0" Name="button4" VerticalAlignment="Top" Width="75" Click="button4_Click" />
<Label Height="23" HorizontalAlignment="Left" Margin="138,84,0,0" Name="label1" VerticalAlignment="Top" Width="120" />
<TextBlock Height="23" HorizontalAlignment="Left" Margin="10,113,0,0" Name="textBlock2" Text="当前进度;" VerticalAlignment="Top" />
<Slider Height="23" HorizontalAlignment="Left" Margin="64,108,0,0" Name="slider1" VerticalAlignment="Top" Width="293" Value="{Binding ElementName=myElement,Path=Position}" ValueChanged="slider1_ValueChanged" />
<Label Height="23" HorizontalAlignment="Right" Margin="0,113,12,0" Name="label2" VerticalAlignment="Top" Width="132" />
<Label Height="23" HorizontalAlignment="Left" Margin="12,84,0,0" Name="label3" VerticalAlignment="Top" Width="120" />
<TextBlock Height="23" HorizontalAlignment="Left" Margin="259,147,0,0" Name="textBlock5" Text="音量;" VerticalAlignment="Top" />
<Slider Height="23" HorizontalAlignment="Left" Margin="295,141,0,0" Name="slider2" VerticalAlignment="Top" Width="100" ValueChanged="slider2_ValueChanged" />
<Label Height="23" HorizontalAlignment="Left" Margin="389,136,0,0" Name="label4" VerticalAlignment="Top" Width="59" />
<Button Content="下载" Height="23" HorizontalAlignment="Left" Margin="412,41,0,0" VerticalAlignment="Top" Name="btnDown" Width="75" Click="btnDown_Click_1" />
<Button Content="关闭" Height="23" HorizontalAlignment="Left" Margin="424,214,0,0" Name="button5" VerticalAlignment="Top" Width="75" Click="button5_Click" />
</Grid>
2.后台代码:public partial class PlayWindow : System.Windows.Controls.UserControl
{
string Url = "d://chen2.wav"; //音频文件路径
string sPath = "d://学习保存文件路径
System.Windows.Threading.DispatcherTimer timer = new System.Windows.Threading.DispatcherTimer();//定义timer
public PlayWindow()
{
InitializeComponent();
}
public PlayWindow( string SoundUrl)
{
InitializeComponent();
Url = SoundUrl;
haha.Source = new Uri( Url, UriKind.Absolute);//URL的绝对路径
timer.Interval = new TimeSpan(0,0,1);//时分秒的初始值
timer.Tick += new EventHandler(timer_Tick);//调用timer_tick
timer.Start();
}
void timer_Tick(object sender, EventArgs e)
{
label2.Content = string.Format(
"{0}{1:00}:{2:00}:{3:00}",
"播放进度:",
haha.Position.Hours,
haha.Position.Minutes,
haha.Position.Seconds);
label3.Content = string.Format("下载进度:{0:##%}", haha.DownloadProgress);
}
private void InitializePropertyValues()
{
//haha.Volume = (double)volumeSlider.Value;
// haha.Source = new Uri(Url, UriKind.Absolute);
}
/// <summary>
/// 下载按钮引发的事件
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
//播放进度
private void slider1_ValueChanged(object sender, RoutedPropertyChangedEventArgs<double> e)
{
try
{
haha.Position = TimeSpan.FromSeconds((haha.NaturalDuration.TimeSpan.TotalSeconds * slider1.Value) /10);//播放器的进度
}
catch (Exception ex)
{
throw ex;
}
}
/// <summary>
/// 播放
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void button1_Click(object sender, RoutedEventArgs e)
{
haha.Play();
}
/// <summary>
/// 暂停
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void button2_Click(object sender, RoutedEventArgs e)
{
haha.Pause();
}
/// <summary>
/// 停止
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void button3_Click(object sender, RoutedEventArgs e)
{
haha.Stop();
}
/// <summary>
/// 静音
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void button4_Click(object sender, RoutedEventArgs e)
{
haha.IsMuted = !haha.IsMuted;
}
/// <summary>
/// 音量控制
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void slider2_ValueChanged(object sender, RoutedPropertyChangedEventArgs<double> e)
{
//音量控制
double d = (double)(((double)slider2.Value) / 10);
haha.Volume = d;
label4.Content = (double.Parse(d.ToString("F2")) * 100) + "%";
}
/// <summary>
/// 下载操作
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void btnDown_Click_1(object sender, RoutedEventArgs e)
{
System.Windows.Forms.SaveFileDialog sf = new System.Windows.Forms.SaveFileDialog();
sf.Filter = "音频文件|*.wav";
if (sf.ShowDialog() == System.Windows.Forms.DialogResult.OK)
{
String targetPath = sf.FileName;
System.IO.File.Copy(Url, targetPath, true);//把文件copy的另一个地方
}
}
/// <summary>
/// 隐藏当前窗口
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void button5_Click(object sender, RoutedEventArgs e)
{
haha.Stop();
haha.Close();
this.LayoutRoot.Visibility = Visibility.Hidden;
}
private void button6_Click(object sender, RoutedEventArgs e)
{
Url = "d://chen2.wav"; //音频文件路径
sPath = "d://学习保存文件路径
PlayWindow pw = new PlayWindow(Url);
//SearchChatHistory pw = new SearchChatHistory(soundUrl);
addPlay.Content = pw;
addPlay.Visibility = Visibility.Visible;
}
}
- 播放器
- 播放器
- 播放器
- 播放器
- 播放器
- 播放器
- 播放器
- 播放器
- 播放器
- - 播放器
- 播放器
- 播放器
- 播放器
- 播放器
- 播放器
- Web播放器flash播放器Flowplayer免费播放器
- 阿飞播放器 android 万能播放器
- 音乐播放器(5)-播放器架构
- 在程序中实现邮件发送,电话拨打,sms,以及浏览器功能能的方法整理
- Gmail 加速
- 闹钟主要实现代码
- 线程封装组件(BackgroundWorker)和线程(Thread)
- BigDecimal 的舍入模式
- 播放器
- js 相关文章
- 命名空间“Microsoft.Office”中不存在类型或命名空间名称“Interop”(是缺少程序集引用吗?)
- 永不放弃并不一定是正确的选择
- MyEclipse快捷键设置
- NSNotificationCenter delegate
- 程序员如何在"小公司成长"和"大公司学习"
- SQL 关联Update
- 处理Selection对象和Range对象——Word VBA中重要的两个对象