我的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的更多相关文章

  1. Naïve Media Player, Part 2

    项目主页网址: https://github.com/Judylalala/en Q1:如何播放online歌曲? A1:我本来以为会为MediaElement设置一个单独的属性播放online音频. ...

  2. 用VLC Media Player搭建简单的流媒体服务器

    VLC可以作为播放器使用,也可以搭建服务器. 在经历了Helix Server和Darwin Streaming Server+Perl的失败之后,终于找到了一个搭建流媒体简单好用的方法. 这个网址中 ...

  3. android错误之MediaPlayer用法的Media Player called in state *,androidmediaplayer

    用到Media Player,遇到几个问题,记一下 用法就不说了,使用的时候最好参考一下mediaPlayer的这张图 第一个错误是Media Player called in state 8 这个是 ...

  4. win7自带windows media player 已停止工作

    解决方法如下: 在计算机开始,菜单找到控制面板 ,然后打开程序和功能,选择打开或关闭window功能,媒体功能.再取消windows Media Center Windows MediaPlayer选 ...

  5. 转:Media Player Classic - HC 源代码分析

    VC2010 编译 Media Player Classic - Home Cinema (mpc-hc) Media Player Classic - Home Cinema (mpc-hc)播放器 ...

  6. Media Player 把光盘中的内容拷贝出来的方法

    http://jingyan.baidu.com/article/cb5d610529f0c1005c2fe0b4.html  这个链接是通过Media  Player 把光盘中的内容拷贝出来的方法h ...

  7. 20 Free Open Source Web Media Player Apps

    free Media Players (Free MP3, Video, and Music Player ...) are cool because they let web developers ...

  8. Windows Media Player安装了却不能播放网页上的视频

    前段时间遇到Windows Media Player安装了却不能播放网页上的视频的问题,在网上查找资料时,发现大部分资料都没能解决我这个问题.偶尔试了网上一牛人的方法,后来竟然解决了.现在再找那个网页 ...

  9. 如何在Windows中打开多个Windows Media Player

    博客搬到了fresky.github.io - Dawei XU,请各位看官挪步.最新的一篇是:如何在Windows中打开多个Windows Media Player.

随机推荐

  1. SQL SERVER 2019新功能

    1.错误代码行 BEGIN TRY    SELECT 1/0END TRYBEGIN CATCH    THROW END CATCH2.二级制截断列名值 chose语法

  2. AES五种加密模式(CBC、ECB、CTR、OCF、CFB)

    --转载https://www.cnblogs.com/starwolf/p/3365834.html https://www.freebuf.com/column/171939.html 分组密码有 ...

  3. Delphi中Chrome Chromium、Cef3学习笔记(六)

    原文   http://blog.csdn.net/xtfnpgy/article/details/71703317   一.CEF加载网页时空白 chrm1.Load(‘你的网址’); 出现空白,跟 ...

  4. 自定义 serializeJSON() 函数

    说明:jQuery框架提供了serialize()方法, 能够将DOM元素内容序列化为json格式字符串,用于ajax请求.通过使用serialize()方法,可以提交本页面的所有域. 但是此方法具有 ...

  5. Shopt命令(删除排除)

    有时候我们需要反选某个文件以外的其他文件,就会用到rm -rf!(file)命令,但是有时候这条命令会报错显示 -bash: !: event not found 解决办法:shopt -s extg ...

  6. spring中Constructor、@Autowired、@PostConstruct的顺序

    其实从依赖注入的字面意思就可以知道,要将对象p注入到对象a,那么首先就必须得生成对象p与对象a,才能执行注入.所以,如果一个类A中有个成员变量p被@Autowired注解,那么@Autowired注入 ...

  7. 使用pip安装包提示TLS证书错误解决办法

    最近有在使用pip安装python包的时候,总会出现以下类似的错误: Could not fetch URL https://pypi.python.org/simple/pytest-xdist/: ...

  8. 小A的位运算-(前缀和+位运算)

    https://ac.nowcoder.com/acm/contest/549/D 题意:从N个数里面选出N-1个数要让它们或起来的值最大. 解题: 假设n个数分别存在a数组里. 从左到右连续或运算结 ...

  9. phpstudy打开网页很慢如何处理

    目录下,.env 配置数据库连接改为DB_HOST=127.0.0.1

  10. PhoenixFD插件流体模拟——UI布局【Rendering】详解

    Liquid Rendering 流体渲染  本文主要讲解Rendering折叠栏中的内容.原文地址:https://docs.chaosgroup.com/display/PHX3MAX/Liqui ...