Naïve Media Player
我的GitHub链接:https://github.com/Joyce45/hwt
一、播放器?怎么做?
提到播放器,首先想到的就是XAML控件库里的MediaElement,于是我又大致阅读了一下该控件的Documentation。
https://docs.microsoft.com/en-us/uwp/api/windows.ui.xaml.controls.mediaelement
找到了如下的代码:(正是这些代码构成了我的播放器雏形)
<MediaElement x:Name="mediaPlayer"/>
<Button Content="Choose file" Click="Button_Click"/>
private async void Button_Click(object sender, RoutedEventArgs e)
{
await SetLocalMedia();
} async private System.Threading.Tasks.Task SetLocalMedia()
{
var openPicker = new Windows.Storage.Pickers.FileOpenPicker(); openPicker.FileTypeFilter.Add(".mp4");
openPicker.FileTypeFilter.Add(".mp3"); var file = await openPicker.PickSingleFileAsync(); // mediaPlayer is a MediaElement defined in XAML
if (file != null)
{
var stream = await file.OpenAsync(Windows.Storage.FileAccessMode.Read);
mediaPlayer.SetSource(stream, file.ContentType); mediaPlayer.Play();
}
}
二、用户选择播放内容?怎么做?
下载好准备试用的mp3和mp4格式的文件后,运行以上代码,发现此时已经可以提供用户选择代码这个功能了!我知道,此时应该帮助用户做更多的判断选择,例如:如何在用户想要播放mp3格式时,对mp3和mp4进行预筛选。但是由于能力和时间有限,最终依然没能解决该问题。
三、播放时不会自动出现进度条?怎么做?
在搜索相关信息时,发现了AreTransportControlsEnabled 这个属性,它是用来显示MediaElement 控件自带的控制播放的控件,它自带全屏功能,它在全屏时会自动旋转为横屏。
https://blog.csdn.net/qq_16956581/article/details/39211855
找到了如下的代码:
<MediaElement x:Name="mediaPlayer"
VerticalAlignment="Center"
AreTransportControlsEnabled="True"
AutoPlay="false"
Source="Assets/Kenichiro Nishihara (Music Video)西原健一郎,音乐MV (2).mp4"
Height="530" Margin="100,100,100,0" RenderTransformOrigin="0.492,1.674" />
四、播放mp3格式的音频文件时,并不像其他播放软件会出现封面海报?怎么做?
关于这个问题,我询问过一些同学也查过一些资料,同学认为可以直接在XAML中添加一个image然后在C#中设定一个参数的值即可,但我尝试多次并未成功,然后我又转而用PosterSource这个属性,然而依然无果……但是界面实在有些单调,于是我增加了一个背景图。
<Grid.Background>
<ImageBrush ImageSource="Assets/gaomei3.jpg" Opacity="0.9" />
</Grid.Background>



总结:
对比现在市面上大部分的播放器,这个player就只能算是一个有简单播放功能的“界面”,但这也算是我本人第一次开始真正意义上使用库内的控件做一些小东西。还记得前几次作业提到的一些控件缺点与优点,应用程序里的技术应用的程度,自己开始使用时,才有了更深刻的感受,虽然做得非常简单,但是过程中确实学到了一些东西,例如:写代码这个事儿还真不能靠空想。上课的时候听什么都觉得,嗯,不难的,然而自己真正开始独立完成一些被教过东西的时候,世界都变了。
Naïve Media Player的更多相关文章
- Naïve Media Player, Part 2
项目主页网址: https://github.com/Judylalala/en Q1:如何播放online歌曲? A1:我本来以为会为MediaElement设置一个单独的属性播放online音频. ...
- 用VLC Media Player搭建简单的流媒体服务器
VLC可以作为播放器使用,也可以搭建服务器. 在经历了Helix Server和Darwin Streaming Server+Perl的失败之后,终于找到了一个搭建流媒体简单好用的方法. 这个网址中 ...
- android错误之MediaPlayer用法的Media Player called in state *,androidmediaplayer
用到Media Player,遇到几个问题,记一下 用法就不说了,使用的时候最好参考一下mediaPlayer的这张图 第一个错误是Media Player called in state 8 这个是 ...
- win7自带windows media player 已停止工作
解决方法如下: 在计算机开始,菜单找到控制面板 ,然后打开程序和功能,选择打开或关闭window功能,媒体功能.再取消windows Media Center Windows MediaPlayer选 ...
- 转:Media Player Classic - HC 源代码分析
VC2010 编译 Media Player Classic - Home Cinema (mpc-hc) Media Player Classic - Home Cinema (mpc-hc)播放器 ...
- Media Player 把光盘中的内容拷贝出来的方法
http://jingyan.baidu.com/article/cb5d610529f0c1005c2fe0b4.html 这个链接是通过Media Player 把光盘中的内容拷贝出来的方法h ...
- 20 Free Open Source Web Media Player Apps
free Media Players (Free MP3, Video, and Music Player ...) are cool because they let web developers ...
- Windows Media Player安装了却不能播放网页上的视频
前段时间遇到Windows Media Player安装了却不能播放网页上的视频的问题,在网上查找资料时,发现大部分资料都没能解决我这个问题.偶尔试了网上一牛人的方法,后来竟然解决了.现在再找那个网页 ...
- 如何在Windows中打开多个Windows Media Player
博客搬到了fresky.github.io - Dawei XU,请各位看官挪步.最新的一篇是:如何在Windows中打开多个Windows Media Player.
随机推荐
- CentOS安装svn(subversion)版本管理
yum -y install subversion svnadmin create /svn/repository cd /svn/repository/conf ll 查看文件-rw-r--r-- ...
- yml使用
yml: value: 可以用单引号或者双引号引起来,这样就不会出现内容中特殊字符含义. yml中 key:value ,如果value是数字需要和前面的冒号隔一个空格,否则获取不到value
- python之路:数据类型初识
python开发之路:数据类型初识 数据类型非常重要.不过我这么说吧,他不重要我还讲个屁? 好,既然有人对数据类型不了解,我就讲一讲吧.反正这东西不需要什么python代码. 数据类型我讲的很死板.. ...
- python 使用多进程打开多个cmd窗口,并在子进程结束之后关闭cmd窗口
额,我想表达的是使用os.system()打开另一个可执行文件,然后等待其结束,关闭cmd窗口 主要是我突发奇想想装逼; 如果只是用multiprocessing库的多进程,然后输出信息的话,根本没法 ...
- 手动卸载的vs2010
手动卸载的vs2010: 环境:Win7 卸载工具:IobitUninstaller(绿色版)//个人推荐,比较强大好用按照以下顺序:1.Microsoft .NET Framework 4 框架 ...
- 修改jupyter notebook主题、字体和启动路径
目录 1.安装主题 2.切换 3.字体 4.启动路径 1.安装主题 window在cmd中输入 pip install --upgrade jupyterthemes 完成后输入查看 jt -l 就提 ...
- 使用themeleaf页面技术时,在JavaScript代码中使用for循环报错.....
解决方法: 在for循环前加上/* <![CDATA[ */,在for循环后加/* ]]> */,这样就能正常解析了:如下 /* <![CDATA[ */ for (var i = ...
- Java8内置的函数式接口
JDK 1.8 API 包含了很多内置的函数式接口.其中就包括我们在老版本中经常见到的 Comparator 和 Runnable,Java 8 为他们都添加了 @FunctionalInterfac ...
- Maven模块化开发
Maven模块化开发 多人协同开发时,特别是规模较大的项目,为方便日后代码维护管理会将每个人的工作细分到具体的功能和模块上.随着项目的不断扩大,模块会越来越多,后续更加难以维护和扩展,为应对这种情况后 ...
- Ambari2.6.2 HDP2.6.5 大数据集群搭建
Ambari 2.6.2 中 HDFS-2.7.3 YARN-2.7.3 HIVE-1.2.1 HBASE-1.1.2 ZOOKEEPER-3.4.6 SPARK-2.3.0 注:本文基于root用户 ...