Delphi FMX的Webbrowser控件中运行JavaScript代码(带歌词的音乐播放器)

最近一段,想做一个能显示歌词的音乐播放器,本打算用Delphi实现,但恰好本人之前在Delphi FMX下编写了一个html编辑调试的app模块,就想试试能不能用Javascript代码来达到这样一个目的。
按老规矩,先上网搜了一圈,看有没有现成的代码可以用来修改的。结果发现,音乐播放器的代码倒是不少(javascript的资源可比delphi丰富多了),但是能读取本地歌词文件的却不多,仅有的几个复制过来在手机的Webbrowser中试了一下,也都无法运行。经过查阅资料、多方求索了解到,原来读取本地文件的操作属于跨域,是被多数浏览器所禁止的不安全行为。虽说也有几种解决的办法:ajax、jsonp、iframe等,但实际验证后,只有jsonp方式能够读取json格式的数据,并且数据中不能包含有换行符。iframe倒是能显示文本数据,但无法将显示的内容存入到变量里。ajax则在手机上根本无效。无奈,只好换个思路,在html中直接写入歌词lrc的文本,再用javascript将其转换为json格式,然后与播放器配合显示歌词。没有了跨域的限制,代码写起来就容易多了,用了几个正则表达式替换,把lrc文本转成了json格式,再加一个audio播放器组件,一个简单的词曲播放界面就完成了。根据自身的需要,为每首歌曲单独创建一个html页面,再用一个目录页面汇总显示歌曲名称链接,以后再不用担心唱歌忘词了!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值