开发环境: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'.
扫描二维码关注公众号,回复:
9918430 查看本文章
2.2. 在 Android 9.0 底下,播放显示正常。
结论:安卓下播放 MP4 视频,还是调用系统提供的视频播放器程序比较好,用 MediaPlayer 还有问题。