音频和视频播放器 C# Winform






4.98/5 (22投票s)
如何使用 C# 在 Windows 应用程序中播放音频/视频和 YouTube 视频
引言
本文的主要目的是解释如何使用 C# 创建一个简单的音频/视频和 YouTube 视频的 Windows 应用程序。用户可以选择音频或视频文件并添加到播放列表中,然后播放歌曲或视频文件。我使用了两个 Com 组件来播放音频/视频和 YouTube 视频 URL。在我的项目中,我使用了以下Com 组件
- Windows Media Player 对象
- Shockwave Flash 对象
音频/视频播放器
我的应用程序可以播放 Windows Media Player 支持的任何音频或视频文件。首先也是最重要的事情是,我们需要将 Windows Media Player Com 组件添加到我们的项目中。
如何将 Windows Media Player Com 组件添加到我们的 Windows 应用程序?
- 创建你的 Windows 应用程序。
- 从 工具 (Tools) 窗口,单击 选择项目 (Choose Items)。
- 选择 Com 组件 (Com Components) 选项卡。
- 搜索 "Windows Media Player" 并单击 确定 (OK)。
现在你可以看到 Windows Media Player 将被添加到你的 工具 (Tools) 窗口。只需将控件拖放到你的 winform 上。
在这里,你可以看到我的音频/视频播放器屏幕
我的音频/视频播放器具有以下功能
- 加载音频/视频文件并添加到播放列表
- 播放音频/视频文件
- 暂停音频/视频文件
- 停止音频/视频文件
- 播放上一首歌曲
- 播放下一首歌曲
- 播放播放列表的第一首歌曲
- 播放播放列表的最后一首歌曲
YouTube 播放器
为了在我们的 Windows 应用程序中播放任何 YouTube URL 视频,我们可以使用 Shockwave Flash 对象 Com 组件。
如何将 Shockwave Flash 对象 Com 组件添加到我们的 Windows 应用程序?
- 创建你的 Windows 应用程序。
- 从 工具窗口 (Tools Windows),单击 选择项目 (Choose Items)。
- 选择 Com 组件 (Com Components) 选项卡。
- 搜索 "Shockwave Flash Object" 并单击 确定 (OK)。
现在你可以看到 Shockwave Flash 对象将被添加到你的工具窗口。只需将控件拖放到你的 winform 上。
在这里,你可以看到我的 YouTube 屏幕。
* 注意 (Note):为了在我们的 Shockwave Flash 对象中播放 YouTube 视频,应该修改 YouTube URL。
例如,我们有 YouTube URL "https://www.youtube.com/watch?v=Ce_Ne5P02q0"。
为了播放此视频,我们需要从 URL 中删除 "watch?",并且我们需要将 "v" 之后的 "=
" 替换 (replace) 为 "/
"。
因此,例如,实际的 URL 应该像这样编辑 "http://www.youtube.com/v/Ce_Ne5P02q0" 。
如果我们不按上述方式编辑 URL,它将无法在 Shockwave 中播放。
Using the Code
音频/视频播放器代码
- 将音频和视频文件加载到我们的播放列表。在这里,使用 打开文件对话框 (Open File Dialog),我们可以过滤所有音频和视频文件。将所有文件名和路径添加到字符串数组并绑定到列表框。
private void btnLoadFile_Click(object sender, EventArgs e) { Startindex = 0; playnext = false; OpenFileDialog opnFileDlg = new OpenFileDialog(); opnFileDlg.Multiselect = true; opnFileDlg.Filter = "(mp3,wav,mp4,mov,wmv,mpg,avi,3gp,flv)|*.mp3; *.wav;*.mp4;*.3gp;*.avi;*.mov;*.flv;*.wmv;*.mpg|all files|*.*"; if (opnFileDlg.ShowDialog() == DialogResult.OK) { FileName = opnFileDlg.SafeFileNames; FilePath = opnFileDlg.FileNames; for (int i = 0; i <= FileName.Length - 1; i++) { listBox1.Items.Add(FileName[i]); } Startindex = 0; playfile(0); } }
- 此方法将从第一个、下一个、上一个、最后一个和列表框选定索引更改事件中调用,并传递 "
selectedindex
" 值。在此方法中,从数组中,检查选定的文件,然后使用 "WindowsMediaPlayer.URL
" 播放。public void playfile(int playlistindex) { if (listBox1.Items.Count <= 0) { return; } if (playlistindex < 0) { return; } WindowsMediaPlayer.settings.autoStart = true; WindowsMediaPlayer.URL = FilePath[playlistindex]; WindowsMediaPlayer.Ctlcontrols.next(); WindowsMediaPlayer.Ctlcontrols.play(); }
- Windows Media Player “
PlayStateChange
” 事件:这是 Windows Media Player 事件,每当播放器播放、暂停、停止等时都会触发。在这里,我使用此方法来检查歌曲或视频文件何时播放完成或结束。如果歌曲结束,那么我设置 "playnext = true
"。在我的程序中,我使用了Timer
控件,它将检查 "playnext = true
" 状态并播放下一首歌曲。private void WindowsMediaPlayer_PlayStateChange (object sender, AxWMPLib._WMPOCXEvents_PlayStateChangeEvent e) { int statuschk = e.newState; // here, the Status returns the // Windows Media Player status where the 8 is // the Song or Video has completed the playing. // Now here, I check if the song is completed // then I Increment to play the next song if (statuschk == 8) { statuschk = e.newState; if (Startindex == listBox1.Items.Count - 1) { Startindex = 0; } else if (Startindex >= 0 && Startindex < listBox1.Items.Count - 1) { Startindex = Startindex + 1; } playnext = true; }
- Windows Media Player 具有
play
、pause
和stop
等方法来控制播放器。WindowsMediaPlayer.Ctlcontrols.play(); WindowsMediaPlayer.Ctlcontrols.pause(); WindowsMediaPlayer.Ctlcontrols.stop();
Youtube 视频播放器 (Youtube Video Player):这是一个简单易用的对象。Shockwave
对象具有 Movie
属性。在这里,我们可以提供我们的 YouTube 视频进行播放。
在这里,在按钮单击事件中,我将文本框的输入提供给 Shockwave Flash
对象的 movie
属性。
private void btnYoutube_Click(object sender, EventArgs e)
{
ShockwaveFlash.Movie = txtUtube.Text.Trim();
}
历史
- 2014年11月20日:初始发布