空间背景视频怎么搞自动播放
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了空间背景视频怎么搞自动播放相关的知识,希望对你有一定的参考价值。
参考技术A 要自动播放的必须是 FLV格式才能设置 音悦台的FLV才行 其他的网站现在都不支持外连接1.在网页输入你要的视频 选择音悦台网的打开(或登录音悦台 输入你要找的视频-搜索)
2.点击播放-在视频右边点(分享) 出来一个对话框-在自动播放前打钩
3.打开空间-设置-主页排版-增删模块-自定义模块-新增模块-FLASH模块-输入名字-复制刚才弹出的对话框的第二个地址粘贴到地址栏-点自动播放-确定保存 就可以了 至于放在空间的哪个位置多大多宽你自己看着办了
关于WPF中Image控件不释放内存的问题
我最初目的是想在wpf中播放带有透明通道的视频,但MediaElement控件不支持透明通道视频播放(依然是黑色背景),测试Image控件是能够播放带透明通道PNG图片的,故采用image控件不停加载PNG序列帧图片的方式来实现播放透明背景的视频。
程序已经写好,测试成功且效果不错,只是内存占用率让人无法接受。400张序列帧图片,所有图片加起来总大小170M,程序运行以后内存使用超过2G!实现方法是先把图存放在一个BitmapImage对象数组中,然后依次给image的.Source赋值。关键代码如下:(使用语言无所谓,C# or vb.net)
dim bmp() As BitmapImage
dim ImageRQ As New Image
dim img As ImageSource
(1)把图片弄到内存里
ReDim bmp(PngMaxName - PngMinName + 1)
For i = PngMinName To PngMaxName
bmp(i) = New BitmapImage(New Uri(PngPath + QM + Trim(Str(i)) + ".jpg", UriKind.RelativeOrAbsolute))
Next i
经过测试以后保存图片部分并不占用更多的内存,占用的只是原图片大小的内存。
(2)用image依次显示这些图
Private Sub Timer1_Tick() Handles Timer1.Tick 时钟频率每秒播30张图
aaa= aaa + 1
img = (bmp(aaa))
ImageRQ.Source = img
End Sub
经测试
ImageRQ.Source = img一句没有加之前内存均正常。只要一显示,随着播放过程的推移内存使用率逐渐增大,直到内存使用率98%
疑点:只有一个image对象,当 ImageRQ.Source = img有新值的时候应该释放掉前一个图片的显示内存,但实际并非如此。
以上问题求解
先把图片缓存成二进制,这样可以释放对图片文件资源的占用,后面代码执行效率高;用通过MemoryStream生成的Source,用完就被释放了。
参考以下代码:
byte[] FacePicture = BitmapImageToByteArray(img)//图片转成数组的方法网上有很多,自己找下吧。
ImageSourceConverter imageSourceConverter = new ImageSourceConverter();
MemoryStream stream = new MemoryStream(FacePicture);
BitmapFrame source = imageSourceConverter.ConvertFrom(stream) as BitmapFrame;
bitmap.Dispose();
ImageRQ.Source = source;
多张图片,自己做个循环吧! 参考技术B 我怀疑是电脑处理速度不够,在那么短时间内没能及时回收。
我刚才试了,10150张图片不卡,不阻塞。我得是台式i5,显卡也可以。 参考技术C XP系统回收比较慢,win7就好很多 参考技术D 在结束后调用GC.Collect()试试
以上是关于空间背景视频怎么搞自动播放的主要内容,如果未能解决你的问题,请参考以下文章