silverlight视频、音频
<UserControl x:Class="MediaStudy.MainPage"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
mc:Ignorable="d"
d:DesignHeight="" d:DesignWidth=""> <Grid x:Name="LayoutRoot" Background="White">
<StackPanel Margin="" Width="">
<StackPanel Orientation="Horizontal">
<TextBlock FontSize="" Foreground="DarkGray">Time:</TextBlock>
<TextBlock x:Name="timeTextBlock" FontSize=""/>
</StackPanel>
<StackPanel Orientation="Horizontal">
<TextBlock FontSize="" Foreground="DarkGray">Type:</TextBlock>
<TextBlock x:Name="typeTextBlock" FontSize=""/>
</StackPanel>
<StackPanel Orientation="Horizontal">
<TextBlock FontSize="" Foreground="DarkGray">Value:</TextBlock>
<TextBlock x:Name="valueTextBlock" FontSize=""/>
</StackPanel>
<StackPanel>
<Button Click="StopMedia"
Grid.Column="" Grid.Row="" Content="Stop"/>
<Button Click="PauseMedia"
Grid.Column="" Grid.Row="" Content="Pause"/>
<Button Click="PlayMedia"
Grid.Column="" Grid.Row="" Content="Play"/>
</StackPanel>
<!-- The MediaElement has the MarkerReached event attached. -->
<MediaElement x:Name="myMediaElemnet" MarkerReached="OnMarkerReached" HorizontalAlignment="Left" Source="thebutterflyandthebear.wmv"
Width="" Height=""/>
</StackPanel>
</Grid>
</UserControl>
(2)后台代码如下
using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Animation;
using System.Windows.Shapes; namespace MediaStudy
{ //音频视频
//(一)MediaElement 对象:向页面添加媒体的操作十分简单,只需将 MediaElement 添加到标记并为要播放的媒体提供统一资源标识符 (URI)
//(1)AutoPlay:指定 MediaElement 是否应自动开始播放。默认值为 true。
//(2)IsMuted:指定 MediaElement 是否静音。true 值将使 MediaElement 静音。默认值为 false。
//(3)Stretch:指定如何拉伸视频以填充 MediaElement 对象。可能值为 None、Uniform、UniformToFill 和 Fill。默认值为 Fill。有关更多信息,请参见 Stretch 枚举。
//(4)Volume:指定介于 0 到 1 的 MediaElement 对象的音频音量值,1 表示最大音量。默认值为 0.5。
//(二)视频播放机:包括播放控制,进度/查找滑块以及全屏切换
//1)TimelineMarker类时间线标记(同步点):与媒体文件中的特定点关联的元数据
// (1)通常是事先创建的,存储在媒体文件本身中
// (2)通常用于命名视频中的不同场景,允许用户查找所选位置或提供脚本提示
// (3)在播放期间当 MediaElement 到达某一时间线标记时,将引发 MarkerReached 事件。
// (4)TimelineMarker对象提供以下属性,用于描述时间、名称和值:
//Time:指定到达标记的时间的 TimeSpan 结构。
//Type:指定标记类型的字符串。此值可以是用户定义的任意字符串。
//Text:指定标记值的字符串。此值可以是用户定义的任意字符串。
// (5)MediaElement 对象的 Markers 属性允许您访问存储在当前播放的媒体文件中的嵌入了标头的标记。还可以使用此属性添加新的时间线标记
// 定义媒体标记有二种方法方法:
// a.使用某个编辑器(如 Windows Media 文件编辑器,作为 Windows Media Encoder 9 系统的一部分安装)
// b.TimelineMarker 对象并通过 Markers 属性将这些对象添加到 MediaElement(这些时间线标记是临时的,如果加入新的媒体会丢失)
//2)MediaElement.Markers属性:获取与当前加载的媒体文件相关联的时间线标记的集合。
// (1)每次当此 MediaElement 打开一个新的源文件时,都会清除和重新填充此集合
// (2)并且仅当发生 MediaOpened 事件后此集合才被视为有效 publicpartialclass MainPage : UserControl
{
public MainPage()
{
InitializeComponent();
this.Loaded +=new RoutedEventHandler(MainPage_Loaded); } void MainPage_Loaded(object sender, RoutedEventArgs e)
{
myMediaElemnet.AutoPlay =false;
myMediaElemnet.MediaOpened +=new RoutedEventHandler(myMediaElemnet_MediaOpened); } //添加新的时间线标记(并且仅当发生 MediaOpened 事件后此集合才被视为有效)
void myMediaElemnet_MediaOpened(object sender, RoutedEventArgs e)
{
//创建时间线
TimelineMarker temp =new TimelineMarker();
temp.Text ="喜欢你";
temp.Time =new TimeSpan(, , );
temp.Type ="";
TimelineMarker temp1 =new TimelineMarker();
temp1.Text ="爱你";
temp1.Time =new TimeSpan(, , );
temp1.Type ="";
//将时间线通过Markers赋给MediaElement
myMediaElemnet.Markers.Add(temp);
myMediaElemnet.Markers.Add(temp1);
} //达某一时间线标记时,将引发 MarkerReached 事件
privatevoid OnMarkerReached(object sender, TimelineMarkerRoutedEventArgs e)
{
timeTextBlock.Text = e.Marker.Time.Seconds.ToString();
typeTextBlock.Text = e.Marker.Type.ToString();
valueTextBlock.Text = e.Marker.Text.ToString();
}
privatevoid StopMedia(object sender, RoutedEventArgs e)
{
myMediaElemnet.Stop();
}
privatevoid PauseMedia(object sender, RoutedEventArgs e)
{
myMediaElemnet.Pause();
}
privatevoid PlayMedia(object sender, RoutedEventArgs e)
{
myMediaElemnet.Play();
} }
}
silverlight视频、音频的更多相关文章
- H5新特性-视频,音频-Flash-canvas绘图
json格式 json - > AJAX json:数据格式,通常是以字符串形式表示 对象 {"name":"james","age" ...
- [原创]使用python对视频/音频文件进行详细信息采集,并进行去重操作
[原创]使用python对视频/音频文件进行详细信息采集,并进行去重操作 转载请注明出处 一.关于为什么用pymediainfo以及pymediainfo的安装 使用python对视频/音频文件进行详 ...
- HTML的媒体元素(视频+音频)
网页的媒体元素 包括 视频 音频 首先创建一个文件夹,放视频和音频 播放(非自动播放+自动播放) 视频播放 1.1. 打开网页不自动播放 <video src="../ ...
- php-ffmpeg 操作视频/音频文件
php-ffmpeg 是一个php操作视频/音频文件的类库. GitHub地址:https://github.com/PHP-FFMpeg/PHP-FFMpeg/ 使用composer快速安装:com ...
- 视频处理控件TVideoGrabber如何重新编码视频/音频(2)
在前面的文中<视频处理控件TVideoGrabber如何重新编码视频>已经讲解了部分TVideoGrabber重新编码音频.视频剪辑的内容,下面将继续说明. 重新编码进程 重新编码开始时, ...
- HTML 5 视频/音频
HTML5 Audio/Video 方法 方法 描述 addTextTrack() 向音频/视频添加新的文本轨道 canPlayType() 检测浏览器是否能播放指定的音频/视频类型 load() 重 ...
- 测试开发之前端——No9.HTML5中的视频/音频
HTML5 视频和音频的 DOM 参考手册 HTML5 DOM 为 <audio> 和 <video> 元素提供了方法.属性和事件. 这些方法.属性和事件允许您使用 JavaS ...
- Html5中 视频 音频标签 进度条问题
最近项目中使用Html5的video和audio标签来在线播放视频和音频文件,但是遇到个奇葩的问题,页面上播放之后进度条无效, 查看w3c之后发现html代码并没有什么不同,之后猜想如果用静态的htm ...
- C#调用FFMPEG实现桌面录制(视频+音频+生成本地文件)
不得不说FFMPEG真是个神奇的玩意,所接触的部分不过万一.网上有个很火的例子是c++方面的,当然这个功能还是用c++来实现比较妥当. 然而我不会c++ 因为我的功能需求比较简单,只要实现基本的录制就 ...
随机推荐
- A Simple Problem with Integers poj 3468 多树状数组解决区间修改问题。
A Simple Problem with Integers Time Limit: 5000MS Memory Limit: 131072K Total Submissions: 69589 ...
- 【python调用windows CLI】调用adb统计Android app的流量消耗
主要记录python如何调用windows CLI 手机连接PC,adb devices可以看到手机sn 通过adb 获取指定app的processID UID 读取Android /proc/ne ...
- 重构20-Extract Subclass(提取父类)
当一个类中的某些方法并不是面向所有的类时,可以使用该重构将其迁移到子类中.我这里举的例子十分简单,它包含一个Registration类,该类处理与学生注册课程相关的所有信息. public class ...
- linux-``反引号
反引号`` 这个东西的用法,我百度了一下,和$()是一样的.在执行一条命令时,会先将其中的 ``,或者是$() 中的语句当作命令执行一遍,再将结果加入到原命令中重新执行,例如:echo `ls`会先执 ...
- hdu-5701 中位数计数(中位数)
题目链接: 中位数计数 Problem Description 中位数定义为所有值从小到大排序后排在正中间的那个数,如果值有偶数个,通常取最中间的两个数值的平均数作为中位数. 现在有nn个数,每个 ...
- python之supervisord启动脚本
Supervisord是用Python实现的一款非常实用的进程管理工具,在批量服务化管理时特别有效.可以将非Daemon的应用转为daemon程序.关于supervisord的安装和配置,在网上已经有 ...
- Web 网页常见问题集锦
1.如何去掉Chrome记住密码后自动填充表单的黄色背景 不知道大家有没有这样的烦恼,在Chrome浏览器中,记住密码后重新填写表单数据时,自动会有黄色背景的出现.(如图a) 图a 而出现这个黄色背景 ...
- 【.NET基础】--委托、事件、线程(2)
本文介绍event的使用以及原理,本文接上一篇文章的Demo继续[下载上一篇Demo] 上一篇我们在类(dg_SayHi.cs)里面定义代理了4个Delegate,然后在Button的后台事件中 新建 ...
- 北京时间28号0点以后Scott Hanselman同志台宣布dotnet core 1.0 rtm
今日占住微信号头条的好消息<终于来了!微软.Net Core 1.0下载放出>.本人立马跑到官网http://dot.net看了一下,仍然是.net core 1.0 Preview 1版 ...
- c#中文件上传(1)
* * ;//3M picPath = Server.MapPath("........."); HttpFileCollection postfile = Context.Req ...