先上图

帮亲戚做个小软件,选用FMX,因为画面不会像vcl那样在图片多的时候闪烁。还能添加动画

但是MediaPlayer播放音乐视频真是不给力,视频没想到好办法。音频方面想到之前万一的Bass.ll的教程

尝试用FMX做下试试

结果发现Bass也是跨开台,Github上有个老外做了个收音机

下面是从万一博客上拷贝的代码,按照fmx的稍做了点修改

begin

  if not OpenDialog1.Execute then
Exit; BASS_StreamFree(hs); hs := BASS_StreamCreateFile(False, PChar(OpenDialog1.FileName), , , BASS_UNICODE);
if hs < BASS_ERROR_ENDED then
begin
Caption := '打开失败:' + hs.tostring;
end
else
Caption :=OpenDialog1.FileName;
end

这个是打开文件,新版的支持UNICODE

const
w = ;
var
i,di: Integer;
begin
if BASS_ChannelIsActive(hs) <> BASS_ACTIVE_PLAYING then Exit; BASS_ChannelGetData(hs, @FFTData, BASS_DATA_FFT1024); Image1.Bitmap.SetSize(Round(Image1.Width),Round(Image1.Height));
Image1.Bitmap.Canvas.BeginScene;
Image1.Bitmap.Canvas.Clear(talphacolors.Black); for i := to Length(FFTData) - do
begin
di := Trunc(Abs(FFTData[i]) * ); if di > Image1.Height then di := Round(Image1.Height);
if di >= FFTPeacks[i] then FFTPeacks[i] := di else FFTPeacks[i] := FFTPeacks[i] - ;
if di >= FFTFallOff[i] then FFTFallOff[i] := di else FFTFallOff[i] := FFTFallOff[i] - ;
if (Image1.Height - FFTPeacks[i]) > Image1.Height then FFTPeacks[i] := ;
if (Image1.Height - FFTFallOff[i]) > Image1.Height then FFTFallOff[i] := ; with Image1.Bitmap.Canvas do
begin
Fill.Color :=talphacolors.red;
FillRect(RectF(i * (w + ), Image1.Height - FFTFallOff[i], i * (w + ) + w, Image1.Height),,,AllCorners, );
end; end;
Image1.Bitmap.Canvas.EndScene;
end;

这个是绘制波形的,其他函数直接copy万一博客的代码就可以用

用Fmx调用Bass.dll的更多相关文章

  1. c# 调用c++DLL方法及注意事项

    引用命名空间 using System.Runtime.InteropServices 调用方法: 一.静态加载 用DllImprot方式来加载c++DLL.如下格式: //对应c++方法 //voi ...

  2. 在.net中调用Delphi dll的Pchar转换

    Pchar是非托管代码,要在.net中调用Delphi dll中的功能,请使用MarshalAs属性告知.net调用PInvoke去转换.net中标准的string类型.如果Delphi dll是De ...

  3. Java调用第三方dll文件的使用方法 System.load()或System.loadLibrary()

    Java调用第三方dll文件的使用方法 public class OtherAdapter { static { //System.loadLibrary("Connector") ...

  4. C#调用C++ DLL类方法

    C++的优势在于高效灵活,C#的优势在于简单易用,两者结合起来对项目开发来说是件好事,而且C++不容易反编译,也保障了代码的安全性,如果一些核心算法使用C#编写,那么保密就是一个问题. C++生成的D ...

  5. paip.java 调用c++ dll so总结

    paip.java 调用c++ dll so总结 ///////JNA (这个ms sun 的) 我目前正做着一个相关的项目,说白了JNA就是JNI的替代品,以前用JNI需要编译一层中间库,现在JNA ...

  6. C#调用C++ DLL 文件

    说来惭愧,都注册一年多了,却没有发表过一篇正式的博文,中间很多学习的过程也没有记录下来.如今到了一个新的环境,也有了学习的机会,一定要把每天的收获记录一下. 要做的东西需要引用C++编写的DLL,刚开 ...

  7. LR调用动态链接库DLL

    什么是动态库? 动态库一般又叫动态链接库(DLL),是Dynamic Link Library 的缩写形式,DLL是一个包含可由多个程序同时使用的代码和数据的库. 动态链接提供了一种方法 ,使进程可以 ...

  8. C#调用C++ Dll

    现在项目基本都是旁边C++的哥们做好dll扔给我,然后我调用.好久之前晚上down了一份c#调用c++dll的方法,出处早已经遗忘.闲来无事,放上来好了.原作者看到后可以留言,我会把您链接放上的,帮了 ...

  9. 【JNI】OPUS压缩与解压的JNI调用(.DLL版本)

    OPUS压缩与解压的JNI调用(.DLL版本) 一.写在开头: 理论上讲,这是我在博客园的第一篇原创的博客,之前也一直想找个地方写点东西,把最近做的一些东西归纳总结下,但是一般工程做完了一高兴就把东西 ...

随机推荐

  1. Swift - UIBezierPath

    使用UIBezierPath可以创建基于矢量的路径.使用此类可以定义简单的形状,如椭圆.矩形或者有多个直线和曲线段组成的形状等.主要用到的该类的属性包括 moveToPoint: //设置起始点 ad ...

  2. Lintcode 82.落单的数

    -------------------------------- 这道题好坑啊,自己说是2*n+1个数字,结果有组测试数据竟然传了个空数组进来... 经典位算法: n^n==0 n^0==n AC代码 ...

  3. UML大战需求分析——阅读笔记06

    状态机图和活动图在样子比较相似,但状态机图是用来为对象的状态及造成状态改变的事件建模.我们大二学习UML统一建模语言状态机图模块时了解到,UML的状态机图主要用于建立对象类或对象的动态行为模型,描述系 ...

  4. C# oracle odp.net 32位/64位版本的问题

    问题如下: 系统是win7 64位,技术 asp.net mvc 4, 数据库 oracle 11g. 由于某些原因只能使用 32的 ODP.NET ( Oracle Data Provider ), ...

  5. 在dll里malloc/new/cvCreate分配内存,在exe里free/Releases释放内存时会出错。

    写了个程序,在DLL中用malloc分配了一块内存,但是在exe程序中释放,结果程序crash,原因就是:其原因可能是堆被损坏,这也说明 TestMySticker.exe 中或它所加载的任何 DLL ...

  6. 【转载】制作一个超精简的WIN7.gho

    首先说明一点,这个Resource不是我制作的,Google搜了下GHO镜像文件制作,挺复杂的.如果要从头到尾自己制作GHO文件可以参考: http://baike.so.com/doc/674790 ...

  7. swift 单独部署,开发

    部署环境 virtualBox Ubuntu 14.04 desktop OpenStack Swift (kilo) 说明 此文档为基于官方修改的只针对Ubuntu 14.04,完整的参阅官方文档 ...

  8. 疑难问题解决备忘录(1)——LAMP环境下WordPress无法发现themes目录下的主题问题解决

    程序猿的宿命就是无穷无尽地解题,虽然可以说是解题的机器,但也无法达到解题之神的境界,碰到自己解决不了的问题那是家常便饭,尤其当遍寻Google和StackOverflow花了九牛二虎之力才解决的问题, ...

  9. 使用VisualVM检测

    下载 https://visualvm.github.io/ 检测远程服务器 转自:http://blog.csdn.net/yangkangtq/article/details/52277794 授 ...

  10. PHP用户注册与登录完整代码【4】

    login.html <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http:// ...