Delphi MediaPlayer Android 的问题

在Delphi10.2 FireMonkey环境下使用TMediaPlayer组件时,在Android设备上出现了视频播放异常的问题。首次点击播放按钮时视频能正常显示,但再次点击时视频无法播放,即使MediaPlayer的状态显示为停止状态。通过添加定时器并在定时器事件中调用Play方法解决了该问题。

Delphi 10.2 FireMonkey 下,TMediaPlayer 目前支持 Windows, iOS, Android 好像还支持 MAC OS。

在 iOS 底下表现正常。

在 Android 下面,界面上放一个 Button,在 OnClick 里面执行以下代码:

MediaPlayer1.FileName := 'MyVideo.mp4';

MediaPlayer1.Play;

点击按钮,执行上述代码,第一次正常,视频画面出来了。再次点击按钮,没有视频出来。这时候查 MediaPlayer.State,是 Stop 状态而不是 Playing 状态。加多一个按钮,再次单独执行一次 MediaPlayer1.Play;  视频开始播放。

浪费了4个小时,反复修改代码,反复追踪 MediaPlayer 在 Android 里面的代码执行过程,发现前后两次,执行到的代码是相同的,不知道为何没有把安卓的 MediaPlayer 启动起来。

不确定问题是不是手机的安卓版本导致?测试手机安卓版本:Android 5.0

不确定问题是不是 Android SDK 导致。SDK 版本:24.0.2;

如果用户选择了文件以后,还有再点一次播放,体验不好。用户选择文件后,想直接播放,这里绕过的办法是加多一个 Timer,执行完 MediaPlayer1.FileName := 'MyVideo.mp4'; 以后,启动 Timer,然后在  Timer1.OnTimer 事件方法里面,加上 MediaPlayer1.Play;  这个方法测试通过。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值