csharp: Flash Player play *.flv file in winform

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.IO;
using System.Xml;
using AxShockwaveFlashObjects;/** VS2005在添加Shockwave时很多人都碰到一个这个问题,就是会说ActiveX注册失败* 先要用Regsvr32来注册ActiveX(运行:Regsvr32 控件名)-u为卸载参数* Regsvr32 C:\WINDOWS\system32\Macromed\Flash\Flash32_18_0_0_203.ocx -u* Regsvr32 C:\WINDOWS\system32\Macromed\Flash\Flash32_18_0_0_203.ocx* 在VS2005下项目-属性-生成-目标平台改为x86在选择生成-清理解决方案与重新生成解决方案直到资源管理器的引用下的AxShochwaveFlashObj的黄色感叹号消失*/
namespace AdobeFlashPlayDemo
{/// <summary>/// http://www.codeproject.com/Articles/12010/Fun-with-C-and-the-Flash-Player-External-API/// http://www.codeproject.com/Articles/10863/Flash-and-NET-with-FlashRemoting/// http://www.codeproject.com/Articles/15742/Multiple-File-Upload-With-Progress-Bar-Using-Flash/// http://www.codeproject.com/Articles/12928/Flash-GUI-for-Your-EXE-Using-Minimalistic-Approach/// </summary>public partial class FLVPlayer : Form{//  private StatusBarPanel fileNameStatusBarPanel;/// <summary>/// /// </summary>public FLVPlayer(){InitializeComponent();//this.fileNameStatusBarPanel = new System.Windows.Forms.StatusBarPanel();try{axShockwaveFlash1.LoadMovie(0, Application.StartupPath + "\\player.swf");axShockwaveFlash1.FlashCall += new _IShockwaveFlashEvents_FlashCallEventHandler(flashPlayer_FlashCall);}catch (Exception ex){ExceptionUtilities.DisplayException("Unable to load SWF video player, please verify you have Flash Player 8 installed and try again.");this.Dispose();}}/// <summary>/// /// </summary>/// <param name="moviePath"></param>public FLVPlayer(string moviePath): this(){this.LoadVideo(moviePath);}/// <summary>/// /// </summary>/// <param name="sender"></param>/// <param name="e"></param>private void Form1_Load(object sender, EventArgs e){}/// <summary>/// /// </summary>/// <param name="sender"></param>/// <param name="e"></param>private void button1_Click(object sender, EventArgs e){openVideoDialog = new OpenFileDialog();openVideoDialog.Filter = "*.flv|*.flv";openVideoDialog.Title = "Select a Flash Video file...";openVideoDialog.Multiselect = false;openVideoDialog.RestoreDirectory = true;if (openVideoDialog.ShowDialog() == DialogResult.OK){LoadVideo(openVideoDialog.FileName);}}/// <summary>/// /// </summary>/// <param name="videoPath"></param>private void LoadVideo(string videoPath){fileNameStatusBarPanel.Text = videoPath;axShockwaveFlash1.CallFunction("<invoke name=\"loadAndPlayVideo\" returntype=\"xml\"><arguments><string>" + videoPath + "</string></arguments></invoke>");}/// <summary>/// /// </summary>/// <param name="sender"></param>/// <param name="e"></param>private void FLVPlayer_DragDrop(object sender, DragEventArgs e){string[] files = (string[])e.Data.GetData(DataFormats.FileDrop);if (fileNameStatusBarPanel.Text != files[0]){LoadVideo(files[0]);}}/// <summary>/// /// </summary>/// <param name="sender"></param>/// <param name="e"></param>private void FLVPlayer_DragEnter(object sender, DragEventArgs e){if (e.Data.GetDataPresent(DataFormats.FileDrop, false)){e.Effect = DragDropEffects.All;}}/// <summary>/// /// </summary>/// <param name="sender"></param>/// <param name="e"></param>private void FLVPlayer_DragLeave(object sender, EventArgs e){}/// <summary>/// /// </summary>/// <param name="width"></param>/// <param name="height"></param>public void ResizePlayer(int width, int height){axShockwaveFlash1.Width = width;axShockwaveFlash1.Height = height;videoPlaceholder.Width = width;videoPlaceholder.Height = height;}private void flashPlayer_FlashCall(object sender, _IShockwaveFlashEvents_FlashCallEvent e){XmlDocument document = new XmlDocument();document.LoadXml(e.request);// Since I have only one call back I just grab the arguments and call// the function.  This needs to be made much more flexible when there are// multiple call backs going back and forthXmlNodeList list = document.GetElementsByTagName("arguments");ResizePlayer(Convert.ToInt32(list[0].FirstChild.InnerText), Convert.ToInt32(list[0].ChildNodes[1].InnerText));}/// <summary>/// /// </summary>/// <param name="sender"></param>/// <param name="e"></param>private void axShockwaveFlash1_FlashCall(object sender, _IShockwaveFlashEvents_FlashCallEvent e){XmlDocument document = new XmlDocument();document.LoadXml(e.request);// Since I have only one call back I just grab the arguments and call// the function.  This needs to be made much more flexible when there are// multiple call backs going back and forthXmlNodeList list = document.GetElementsByTagName("arguments");ResizePlayer(Convert.ToInt32(list[0].FirstChild.InnerText), Convert.ToInt32(list[0].ChildNodes[1].InnerText));}private void axShockwaveFlash1_Enter(object sender, EventArgs e){}}
}

  

转载于:https://www.cnblogs.com/geovindu/p/4646074.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/550162.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ad文件服务器部署,AD 集成 – 配置 ADFS 登陆 - Seafile 服务器用户手册

要求要想使用 ADFS 登陆到 Seafile&#xff0c;需要以下组件&#xff1a;1、安装了 ADFS 的windows服务器。安装 ADFS 和相关配置详情请参考 本文。2、对于 ADFS 服务器的SSL有效证书&#xff0c;在这里我们使用 adfs-server.adfs.com 作为域名示例。3、对于 seafile 服务器的S…

win7映射网络驱动器消失了_win7怎么映射网络驱动器|win7设置网络驱动器的方法...

2015-08-21 15:57:15近来&#xff0c;有一些刚刚升级windows10系统的用户向小编咨询在新系统中该如何创建映射网络驱动器。其实&#xff0c;方法非常简单&#xff0c;接下来&#xff0c;小编就向大家分享win10系统创建映射网络驱动器的具体方法...2015-05-15 19:27:26Win7系统怎…

NTC热敏电阻基础以及应用和选择(转)

源&#xff1a;NTC热敏电阻基础以及应用和选择 NTC被称为负温度系数热敏电阻&#xff0c;是由Mn-Co-Ni的氧化物充分混合后烧结而成的陶瓷材料制备而来&#xff0c;它在实现小型化的同时&#xff0c;还具有电阻值-温度特性波动小、对各种温度变化响应快的特点&#xff0c;可被用…

graphic头文件函数_graphics.h头文件

graphics.h头文件是一款tc操作必备组件。graphics.h头文件主要是运行在win8、win7操作系统上&#xff0c;为用户提供了非常多函数类型&#xff0c;用户只需使用tc编译就可以使用这个软件&#xff0c;是用户进行tc编辑时不可缺少的操作工具。graphics.h头文件函数范围&#xff1…

homeomorphic 同胚 释义

简介 在拓扑学中&#xff0c;两个流形&#xff0c;如果可以通过弯曲、延展、剪切(只要最终完全沿着当初剪开的缝隙再重新粘贴起来)等操作把其中一个变为另一个&#xff0c;则认为两者是同胚的。如&#xff1a;圆和正方形是同胚的&#xff0c;而球面和环面就不是同胚的。 参考链…

流形 非流形 释义

非流形边 A non-manifold edge has more than two incident triangles. 就是一个边由超过两个三角形相交。就是非流形边。 非流形顶点 比如两个三棱锥相接触的那个顶点就是非流形顶点。 以此可以逆推出流形是什么意思。 参考 书籍 [Polygon mesh processing] 转载于:https://ww…

mysql 插入数据 自增长_如何在MYSQL插数据 ID自增

2种解决办法1.修改你的数据库表&#xff0c;将ID设为自增长&#xff0c;注&#xff1a;只有主键才可以设置为自增长例&#xff1a;CREATE TABLE message (id INT(8) NOT NULL AUTO_INCREMENT, PRIMARY KEY(id));2.代码中进行处理Statement ps;ResultSet rs;int id 0;........…

MSN无法登陆,服务暂时不可用(错误码:80048051)

好几次MSN突然就登陆不了&#xff0c;一次是改了系统时间&#xff0c;这个好办&#xff0c;你改成当前日期时间即可&#xff1b; 还有一个可能就是脱机工作&#xff1a; 請依照以下步驟進行除錯&#xff1a; 1. 關閉Windows Live Messenger 先關閉你的MSN&#xff0c;在右下角找…

drawboard pdf拆分文件_请收藏!这是一份最全的PDF问题解决方案。

晚上好呀&#xff0c;我是大梦。最近因为赶书稿和论文缘故&#xff0c;时常要翻看许多PDF文件&#xff0c;复制摘录写东西&#xff0c;忽然发现好不方便&#xff0c;从PDF复制过来的文字到Word中变成了乱码&#xff1f;一些扫描版PDF根本无法复制而且还留有许多白边&#xff0c…

Java基础教程——线程通信

线程通信&#xff1a;等待、唤醒 Object方法这些方法在拥有资源时才能调用notify唤醒某个线程。唤醒后不是立马执行&#xff0c;而是等CPU分配wait等待&#xff0c;释放锁&#xff0c;不占用CPU资源notifyAll唤醒全部等待的线程重点&#xff1a;资源的有效利用 生产一个&#x…

python requests cookies请求_python+requests实现接口测试 - cookies的使用

在很多时候&#xff0c;发送请求后&#xff0c;服务端会对发送请求方进行身份识别&#xff0c;如果请求中缺少识别信息或存在错误的识别信息&#xff0c;会造成识别失败。 如一些需要用户登录以后才能访问的页面。import requestsmyaddress_urlhttp://xxx.com/api/v1/myaddress…

kafka命令及启动

默认内网访问&#xff0c;要在外网访问的话&#xff0c;需要在修改config/server.properties中的配置 将listeners和advertised.listeners的值用主机名进行替换&#xff0c;在外用使用java进行生产者或消费者连接的时候&#xff0c;不填写具体的IP&#xff0c;填写安装kafka的主…

编程判断元素归类_编程练习-判断是否为易混淆数

题目来源&#xff1a;LeetCode给定一个数字 N&#xff0c;当它满足以下条件的时候返回 true&#xff1a;把原数字旋转180以后得到新的数字。如 0, 1, 6, 8, 9 旋转 180 以后&#xff0c;得到了新的数字 0, 1, 9, 8, 6 。2, 3, 4, 5, 7 旋转 180 后,得到的不是数字。易混淆数字 …

vue引入51la流量监控

main.js router.afterEach( ( to, from, next ) > {setTimeout(()>{var _hmt _hmt || [];(function() {//每次执行前&#xff0c;先移除上次插入的代码document.getElementById(51_la) && document.getElementById(51_la).remove();var hm document.createEle…

斯蒂夫乔布斯传 读后感

斯蒂夫乔布斯传 读后感 失败和命运&#xff0c;成长和感受刺激着乔布斯成长。他和普通人一样。但是&#xff0c;不一样的环境&#xff0c;不一样的职位&#xff0c;不一样的体验给了他不一样的生命。所以,慢慢成长吧。当你的经历足够支撑你的命运时&#xff0c;你会站到你想要的…

cad画直角命令_炸了,CAD fro命令配合tk命令,极轴追踪无敌!

文尾左下角阅读原文看视频教程好课推荐&#xff1a;零基础CAD&#xff1a;点我CAD室内&#xff1a;点我 周站长CAD&#xff1a;点我CAD机械&#xff1a;点我 Bim教程&#xff1a;点我CAD建筑&#xff1a;点我CAD三维&#xff1a;点我全屋定制&#xff1a;点我 ps教程&#xff1…

linux frp 内网穿透 nginx反向代理

wget https://github.com/fatedier/frp/releases/download/v0.20.0/frp_0.20.0_linux_amd64.tar.gz frps.ini 服务端 有外网IP服务器 frpc.ini 客户端 局域网服务器 服务端: vi frps.ini [common] bind_port 8700 token asdasdasdasdasdasdasd vi start_frp_server.s…

[转载]Tensorflow 的reduce_sum()函数的axis,keep_dim这些参数到底是什么意思?

转载链接&#xff1a;https://www.zhihu.com/question/51325408/answer/125426642来源&#xff1a;知乎 这个问题无外乎有三个难点&#xff1a; 什么是sum什么是reduce什么是维度(indices, 现在均改为了axis和numpy等包一致)sum很简单&#xff0c;就是求和&#xff0c;那么问题…

多多进宝推广团队_多多进宝推广形式及推手寻找、佣金结算方式是怎样的?

多多进宝是拼多多下的一款推广工具&#xff0c;主要是针对于想要提高自己店铺产品的销量以及获取更多流量的拼多多商家来展开的&#xff01;但是&#xff0c;目前为止还有很多拼多多商家对多多进宝的一个运用不太了解&#xff0c;以至于有一些拼多多商家在使用多多进宝时有很大…

rtsp 通过 浏览器播放

安装docker ffmpeg https://blog.csdn.net/m1f2c3/article/details/93624289 docker pull jrottenberg/ffmpeg docker run -it --entrypointbash jrottenberg/ffmpeg docker start ... 下载jsmpeg npm install -g ws npm install ws npm install http-server -g 进入j…