namespace ShockwaveFlashPlayer
{
public partial class SWFPlayer : Form
{
public SWFPlayer()
{
InitializeComponent();
axShockwaveFlash1.Size = new Size(this.Width, this.Height - 130);
axShockwaveFlash1.Movie = "";
lblReadyState.Location = new Point(0, this.Height - 125);
lblScale.Location = new Point(this.Width - lblScale.Width - 10, this.Height - 125);
trackBar1.Location = new Point(0, this.Height - 100);
}
private void SWFPlayer_Load(object sender, EventArgs e)
{
if (axShockwaveFlash1.ReadyState == 4)
{
lblReadyState.Text = "完成";
lblScale.Text = "0/" + axShockwaveFlash1.TotalFrames.ToString();
btnPlay.Enabled = true;
trackBar1.Enabled = true;
}
}
#region ShockwaveFlash 控件加载文件信息
private void axShockwaveFlash1_OnReadyStateChange(object sender, AxShockwaveFlashObjects._IShockwaveFlashEvents_OnReadyStateChangeEvent e)
{
switch (axShockwaveFlash1.ReadyState)
{
case 0:
lblReadyState.Text = "正在载入......";
break;
case 1:
lblReadyState.Text = "未初始化";
break;
case 2:
lblReadyState.Text = "已载入";
break;
case 3:
lblReadyState.Text = "正在交互......";
break;
case 4:
lblReadyState.Text = "完成";
lblScale.Text = axShockwaveFlash1.FrameNum + "/" + axShockwaveFlash1.TotalFrames.ToString();
trackBar1.Maximum = axShockwaveFlash1.TotalFrames;
btnPlay.Enabled = true;
btnBack.Enabled = true;
btnForward.Enabled = true;
trackBar1.Enabled = true;
break;
}
}
private void axShockwaveFlash1_OnProgress(object sender, AxShockwaveFlashObjects._IShockwaveFlashEvents_OnProgressEvent e)
{
lblReadyState.Text = "已下载 " + axShockwaveFlash1.PercentLoaded() + "%......";
}
#endregion
#region 功能键(播放、后退、前进)
//播放
private void btnPlay_Click(object sender, EventArgs e)
{
if (axShockwaveFlash1.Playing)
{
axShockwaveFlash1.Stop();
btnPlay.Text = "►";
lblReadyState.Text = "暂停";
timer1.Stop();
}
else
{
axShockwaveFlash1.Play();
btnPlay.Text = "■";
lblReadyState.Text = "播放";
timer1.Start();
}
}
//后退
private void btnBack_Click(object sender, EventArgs e)
{
//axShockwaveFlash1.Back(); //此方法只能后退一帧
axShockwaveFlash1.GotoFrame(axShockwaveFlash1.FrameNum - 20);
btnPlay_Click(null, null); //播放
}
//前进
private void btnForward_Click(object sender, EventArgs e)
{
//axShockwaveFlash1.Forward(); //前进一帧
axShockwaveFlash1.GotoFrame(axShockwaveFlash1.FrameNum + 20);
btnPlay_Click(null, null); //播放
}
#endregion
#region 暂无内容
private void axShockwaveFlash1_FlashCall(object sender, AxShockwaveFlashObjects._IShockwaveFlashEvents_FlashCallEvent e)
{
//XmlDocument doc = new XmlDocument();
//doc.LoadXml(e.request);
//XmlNodeList list = doc.GetElementsByTagName("arguments");
//int width = Convert.ToInt32(list[0].FirstChild.InnerText);
//int height = Convert.ToInt32(list[0].ChildNodes[1].InnerText);
//if (width > axShockwaveFlash1.Width)
//{
// this.Width += width - axShockwaveFlash1.Width;
//}
//if (height > axShockwaveFlash1.Height)
//{
// this.Height += height - axShockwaveFlash1.Height;
//}
}
private void axShockwaveFlash1_FSCommand(object sender, AxShockwaveFlashObjects._IShockwaveFlashEvents_FSCommandEvent e)
{
}
#endregion
//打开本地文件
private void tsmiOpenFile_Click(object sender, EventArgs e)
{
DialogResult dr = openFile.ShowDialog();
if (dr == DialogResult.OK)
{
axShockwaveFlash1.Movie = openFile.FileName;
//axShockwaveFlash1.CallFunction("<invoke name=\"loadAndPlayVideo\" returntype=\"xml\"><arguments><string>" + openFile.FileName + "</string></arguments></invoke>");
}
}
#region 文件拖放
private void FlashControl_DragEnter(object sender, DragEventArgs e)
{
if (e.Data.GetDataPresent(DataFormats.FileDrop))
{
e.Effect = DragDropEffects.All;
}
}
private void FlashControl_DragDrop(object sender, DragEventArgs e)
{
string swf = ((System.Array)e.Data.GetData(DataFormats.FileDrop)).GetValue(0).ToString();
if (Path.GetExtension(swf).ToLower() == ".swf")
{
axShockwaveFlash1.Movie = swf;
}
else
{
MessageBox.Show("文件必须是 swf 格式!");
}
}
#endregion
//计数器
private void timer1_Tick(object sender, EventArgs e)
{
lblScale.Text = axShockwaveFlash1.FrameNum + "/" + axShockwaveFlash1.TotalFrames.ToString();
trackBar1.Value = axShockwaveFlash1.FrameNum;
}
//拖动 滑动条 滑块
private void trackBar1_Scroll(object sender, EventArgs e)
{
axShockwaveFlash1.GotoFrame(trackBar1.Value);
lblScale.Text = axShockwaveFlash1.FrameNum + "/" + axShockwaveFlash1.TotalFrames.ToString();
btnPlay_Click(null, null); //播放
}
}
}
点击打开链接
音乐播放器的制作
最新推荐文章于 2021-05-10 22:39:36 发布