WPF音乐播放器 零基础4个小时左右
前言:winfrom转wpf用久的熟手说得最多的是,转回去做winfrom难。。当时不明白。。做一个就知道了。
WPF音乐播放器
入口主程序
FontFamily="Microsoft YaHei" FontSize="12" FontWeight="ExtraLight"
居中显示
WindowStartupLocation="CenterScreen" ResizeMode="NoResize"
Title="音娱乐行音乐播放器" Height="600" Width="1010"
无边框
StackPanel 块 Orientation="Horizontal" 水平显示 HorizontalAlignment="Center" 居中
**************
菜单栏目
样式控件
MenuButtonStyle 样式
// <Border 没法放两个以上对象 需要<StackPanel 包起来 <TextBlock 图标 <ContentPresente 内容
// 控件触发器 样式触发器
MenuLabelStyle 样式
ClassButtonStyle 样式
后台绑定数据
指定关系
DataContext = new MainViewModel();
右侧内容
fistpage 页面
爬虫
数据绑定
水平显示
模板
关键 控件模板
数据模板
数据列表绑定
数据细节处理
ps:学wpf没有个大屏是个阻力哈哈哈
播放控制器
DataContext.PlayDownloadCommand,RelativeSource
播放命令指向信息
播放
添加
指向信息帮助类 有点深入自己看
public class Command : ICommand
{
public event EventHandler? CanExecuteChanged;
public bool CanExecute(object? parameter)
{
return true;
}
public void Execute(object? parameter)
{
dynamic param = parameter;
DoExecute?.Invoke(param);
}
public Action DoExecute { get; set; }
public Command(Action action)
{
DoExecute = action;
}
}
public class Command : Command
{
public Command(Action action) : base(obj => action?.Invoke()) { }
}
其他类似
小经验
分界线 深吭来了
public async void Play(SongModel song)
{
var options = new LaunchOptions { Headless = true };
// 这里有个深坑哈 先要跑一边 下载运行环境 后 注释掉
// await new BrowserFetcher().DownloadAsync(BrowserFetcher.DefaultChromiumRevision);
//注意 两个using
using (var browser = await Puppeteer.LaunchAsync(options))
using (var page = await browser.NewPageAsync())
{
await page.GoToAsync(song.Url);
//请求之后 就是用语法 有就获取src
var jsSelectAllAnchors = @"Array.from(document.querySellectorAll('audio')).map(a=>a.src);";
var urls=await page.EvaluateExpressionAsync(jsSelectAllAnchors);
if (urls != null&&urls.Length>0)
{
wc.DownloadFile(urls[0],"./songs/"+song.SongName+".mp3");
}
}
}
遇到的问题 jsSelectAllAnchors 这里面的命令哪里来的 写错了一个单词 找了有点久
细节UI 播放控制台
双击
跑起来了
简单的播放 可以下载播放 下载延迟很耗时间
小编表示 wpf 界面代码写起来 这还是有点底子 ,写起来 比vue webfrom react 都麻烦=.=。。。。。
.net几行代码音乐API各排行榜 热搜 入库-CSDN博客
ABP.Next系列02 搭个API框架要多久 项目下载 运行 -Fstyle_【abp vnext】下载并运行web api项目详细教程文档-CSDN博客