開發環境: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 還有問題。