MediaPlayer Android 下播放 MP4 的问题

本文探讨了使用Delphi10.3.1社区版在Android5.0与Android9.0上开发多媒体应用遇到的问题,包括进度条在不同系统版本下的表现差异及视频播放异常情况。建议在安卓环境下,采用系统自带的视频播放器而非MediaPlayer。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

开发环境:Delphi 10.3.1 社区版。

测试环境:

A. Android 5.0;

B. Android 9.0

 

1. 进度条

Delphi 官方带的例子里面,关于进度条的代码:

procedure TForm1.Timer1Timer(Sender: TObject);
begin
  if ProgressBar1.Max <> MediaPlayer1.Duration then
    ProgressBar1.Max := MediaPlayer1.Duration;
  if ProgressBar1.Value <> MediaPlayer1.CurrentTime then
    ProgressBar1.Value := MediaPlayer1.CurrentTime;
end;

在 Android 5.0 底下,进度显示正常。

在 Android 9.0 底下,进度条不显示进度。设置断点查看,每一次,MediaPlayer1.Duration 都返回 -1。

2. 播放显示:

2.1. 在 Android 5.0 底下,不放 MediaPlayerControl1,不显示视频,播放正常,有视频的声音在播放。如果用了 MediaPlayerControl1,则播放就会出现异常:Project testMediaPlayer.apk raised exception class EJNIException with message 'java.io.IOException: Prepare failed.: status=0x80000000'.

2.2. 在 Android 9.0 底下,播放显示正常。

结论:安卓下播放 MP4 视频,还是调用系统提供的视频播放器程序比较好,用 MediaPlayer 还有问题。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值