ag游戏庄闲|官方网站
!实时搜索: 盒子论坛 | 注册用户 | 修改信息 | 退出
检举帖 | 全文检索 | 关闭广告 | 捐赠
技术论坛
?用户名
?密??码
自动登陆(30天有效)
忘了密码
≡技术区≡
DELPHI技术
移动应用开发
Web应用开发
数据库专区
报表专区
网络通讯
开源项目
论坛精华贴
≡发布区≡
发布代码
发布控件
文档资料
经典工具
≡事务区≡
网站意见
盒子之家
招聘应聘
信息交换
论坛信息
最新加入: sy1368364703
今日帖子: 12
在线用户: 20
导航: 论坛 -> 移动应用开发 斑竹:flyers,iamdream ?
作者:
男 huangxing (gx) ★☆☆☆☆ -
盒子活跃会员
2019/8/11 10:38:33
标题:
XE10.3在安卓中播放不了MP4文件 浏览:468
加入我的收藏
楼主: 原来用10.2可以在安卓里面播放MP4视频文件的,10.3.1就播放不了,10.3.2也不能播放,各位高手有没有测试过?播放AVI可以,同样的软件如果用10.2编译,就可以播放。就是一个简单的播放MP4视频文件,打包在安装软件里面的。
----------------------------------------------
-
作者:
男 stacker (OOP才是王道) ★☆☆☆☆ -
普通会员
2019/8/11 11:15:30
1楼: 权限问题吗?
----------------------------------------------
-
作者:
男 huangxing (gx) ★☆☆☆☆ -
盒子活跃会员
2019/8/11 12:29:40
2楼: 他们有个例程,播放视频的,在windows底下运行,哪个列表里面有MP4的,同样的文件,运行到安卓里面,哪个MP4的文件都不出现在列表里面了,可能真的取消了播放MP4的功能。
----------------------------------------------
-
作者:
男 homejun (homejun) ★☆☆☆☆ -
盒子活跃会员
2019/8/11 16:49:56
3楼: 会不会是安桌中文件位置不对了,所以不显示在列表中
----------------------------------------------
-delphi新资讯站?http://www.delphigear.cn
作者:
男 stacker (OOP才是王道) ★☆☆☆☆ -
普通会员
2019/8/11 17:45:09
4楼: Windows底下和安卓底下路径不相同。
----------------------------------------------
-
作者:
男 pcplayer (pcplayer) ★☆☆☆☆ -
普通会员
2019/8/11 20:51:10
5楼: 我确定?10.3?可以播放?MP4,前几天刚试过。
----------------------------------------------
-
作者:
男 huangxing (gx) ★☆☆☆☆ -
盒子活跃会员
2019/8/11 21:40:19
6楼: 真的?是用MediaPlayer播放?
----------------------------------------------
-
作者:
男 huangxing (gx) ★☆☆☆☆ -
盒子活跃会员
2019/8/11 21:43:40
7楼: 回4楼,路径应该是知道没有错的,因为同样的代码在10.2下面编译的,在安卓里面运行是可以播放的。
----------------------------------------------
-
作者:
男 pcplayer (pcplayer) ★☆☆☆☆ -
普通会员
2019/8/12 16:29:02
8楼: 就是用?MediaPlayer?来播放?MP4?呀。

注意安卓版本,高版本安卓访问外部存储路径可能需要用代码动态申请权限。
----------------------------------------------
-
作者:
男 huangxing (gx) ★☆☆☆☆ -
盒子活跃会员
2019/8/12 16:46:43
9楼: 那读取图片怎么可以呢?就是视频MP4不行。都是一样的路径。
----------------------------------------------
-
作者:
男 wang_80919 (Flying Wang) ▲▲▲▲▲ -
普通会员
2019/8/12 17:58:59
10楼: 有些人,自己做不到,就说?DLEPHI?做不到。
----------------------------------------------
(C)(P)Flying?Wang
作者:
男 denddy (denddy) ★☆☆☆☆ -
盒子活跃会员
2019/8/12 18:12:58
11楼: delphi自带的例子里面有播放MP4的,看看就知道了
----------------------------------------------
-
作者:
男 sail2000 (小帆工作室) ★☆☆☆☆ -
盒子活跃会员
2019/8/12 18:25:43
12楼: delphi自带的例子测试通过。

华为?Mate8,Android8.0,delphi?10.3.2
此帖子包含附件:
JPEG 图像
大小:86.7K
----------------------------------------------
delphi?是兴趣,和工作无关,即使它倒闭。
又不靠它?delphi?吃饭,怕甚?
作者:
男 huangxing (gx) ★☆☆☆☆ -
盒子活跃会员
2019/8/12 20:12:32
13楼: 那可能是机器的原因了,我用这个软件编译运行起来也是播放不了的。
----------------------------------------------
-
作者:
男 huangxing (gx) ★☆☆☆☆ -
盒子活跃会员
2019/8/12 20:20:40
14楼: 关键是我用10.2编译同样这个例程,是可以在同样的机器播放的
----------------------------------------------
-
作者:
男 huangxing (gx) ★☆☆☆☆ -
盒子活跃会员
2019/8/12 21:12:45
15楼: 换了一款机器,10.3.2可以了,但是10.3.1还是不行,报错,解决问题了。
----------------------------------------------
-
作者:
男 huangxing (gx) ★☆☆☆☆ -
盒子活跃会员
2019/8/12 21:52:45
16楼: 多谢大家的参与,我发现10.3.2对MediaPlayer改进还是不错的,我做一个安卓视频播放器,轮流播放,以前的版本,长时间运行以后,都会出错,但是10.3.2我长时间轮流播放几十个视频文件,还没有报过错,说明10.3.2,大家还是赶紧升级,确实修改了一些BUG。
----------------------------------------------
-
作者:
男 wang_80919 (Flying Wang) ▲▲▲▲▲ -
普通会员
2019/8/13 9:56:48
17楼: 我看源码,明显使用了新的策略。
接口还是那些接口。但是用法变了。
----------------------------------------------
(C)(P)Flying?Wang
作者:
男 huangxing (gx) ★☆☆☆☆ -
盒子活跃会员
2019/8/13 11:55:09
18楼: 我仔细测试了10.3.2的MediaPlayer在安卓下面播放视频文件的功能,以前在10.1,10.2,10.3.1下面也测试过,以前只要播放多个视频文件,时间超过一定时间,就会报错,就停止了,当时我搞的项目就不敢用它来做,但是这次测试10.3.2给我很大惊喜,软件播放几十个视频文件,包括下载很大的视频文件,长时间运行,一直没有出任何错误,这样我就可以放心用delphi?10.3.2完成整个项目了,毕竟我还是最熟悉delphi嘛。
----------------------------------------------
-
作者:
男 huangxing (gx) ★☆☆☆☆ -
盒子活跃会员
2019/8/13 12:01:12
19楼: 10.3.2把Rectangle作为一个容器来使用了,就有点类似VCL的Panel,这个是以前的10.2版本不同的。
----------------------------------------------
-
作者:
男 huangxing (gx) ★☆☆☆☆ -
盒子活跃会员
2019/8/13 12:18:32
20楼: ???????FLibraryPath:=System.IOUtils.TPath.GetDocumentsPath;
???????GetFileName:=System.IOUtils.TPath.Combine(FLibraryPath,GetFileName);
???????if?TFile.Exists(GetFileName)?then
??????????begin
???????try
??????????MediaPlayer1.Stop;
??????????MediaPlayer1.FileName:=GetFileName;
??????????MediaPlayer1.CurrentTime?:=?0;
??????????Timer3.Interval:=4000;
??????????Timer3.Enabled:=True;??//指定播放文件后,不可以马上运行?MediaPlayer1.Play;必须要经过一点时间再运行
?????????except
?????????end;

??????end;
procedure?TFormMain.Timer3Timer(Sender:?TObject);

begin

??try
???Timer3.Enabled:=False;
???
???MediaPlayer1.Play;
??except
??end;
end;


轮流播放的要点,不知道我测试的是不是正确的方法,就是要切换播放文件的时候,必须要有个延迟,我现在是使用timer来延迟。
----------------------------------------------
-
作者:
男 pcplayer (pcplayer) ★☆☆☆☆ -
普通会员
2019/8/13 17:18:57
21楼: 楼上的,你碰到的这个必须要经过一点时间再运行的问题,我在?XE7?的时候碰到过。

目前我用?10.3.1?做测试,没发现这样的问题。

另外,之前因为?XE7?的?MediaPlayer?在安卓下播放视频有问题,俺就想了另外一招,直接调用系统本身的播放器来播放?MP4。这个保证不出问题。

具体做法见俺博客:

https://blog.csdn.net/pcplayer/article/details/99417638
----------------------------------------------
-
作者:
男 huangxing (gx) ★☆☆☆☆ -
盒子活跃会员
2019/8/13 18:07:24
22楼: 我们的做的项目,不能全部是播放视频的,就是一部分区域是视频,另外的区域还要做其他用途的,所以,不能用你的调用系统的播放器的方法,除非可以把系统播放器限定在一定的播放区域。
----------------------------------------------
-
作者:
男 pcplayer (pcplayer) ★☆☆☆☆ -
普通会员
2019/8/13 18:43:46
23楼: 目前我的测试结果:

10.3.1?编译的程序,MediaPlayer?安卓下播放?MP4:
1.?安卓5.0?播放不了,会出异常。如果你不想兼容旧手机就没事。
1.1.?安卓5.0?底下如果不显示视频,是能够播放的,能听到播放的声音,进度条显示也正常。
2.?安卓9.0?能够播放,但进度条不对。
----------------------------------------------
-
作者:
男 delphiilove (乌羽玉) ★☆☆☆☆ -
普通会员
2019/8/13 21:04:48
24楼: 10.3.2?MediaPlayer?不支持?Win32?的?MP4?播放
报错
unsupported?media?file
----------------------------------------------
GOD?with?US
作者:
男 huangxing (gx) ★☆☆☆☆ -
盒子活跃会员
2019/8/13 22:02:28
25楼: windows下建议使用PasLibVlcPlayer,没有比它更简单快捷了。
----------------------------------------------
-
作者:
男 wang_80919 (Flying Wang) ▲▲▲▲▲ -
普通会员
2019/8/14 9:17:43
26楼: 24?楼,建议看看这个?提示是?哪一行?源代码给你的。
----------------------------------------------
(C)(P)Flying?Wang
作者:
男 pcplayer (pcplayer) ★☆☆☆☆ -
普通会员
2019/8/15 18:49:23
27楼: WINDOWS?底下做播放器,最好自己用?DirectShow?来做,自由度最高,想咋做咋做。

DELPHI?VCL?用?DirectShow?有一套控件:DsPack。

其实?FMX?底下,看源代码,windows?底下的?MediaPlayer?也是用的?DirectShow。

至于说?FMX?的?MediaPlayer?在?WINDOWS?底下播放?MP4?出现的不支持的媒体类型的异常,是因为?FMX?的代码只是简单地调用了?DirectShow?的自动播放功能,自动播放功能则自动去查媒体类型,然后根据媒体类型去查系统里面有什么解码器的?Filter?可以用来解码这个?MP4?文件,查到了就自动将一些?Filter?串接起来,开始播放。如果查不到它就返回这个异常。而?WINDOWS?系统默认没有支持?MP4,因此就出这个异常。

如果自己用?DsPack?这套控件,自己用代码串接?Filter?则肯定可以播放,只不过需要检测系统是否带了对应的解码器,如果没带,你可以给它安装啊。

比如,安装一套?DELPHI?直接可以用的解码器:ffDShow。
----------------------------------------------
-
作者:
男 pcplayer (pcplayer) ★☆☆☆☆ -
普通会员
2019/8/15 18:53:27
28楼: 然后,上面提到的?DsPack?要注意几个问题:

1.?它是开源的,官方没有持续更新,官方给出的控件,D7?可用,新的?DELPHI?版本需要对它做一些更改。

2.?解码器:基于?DirectShow?的解码器?Filter,ffDShow?也是开源的。

3.?DsPack?是基于?VCL?的。你可以先在?VCL?底下做好一个播放器窗口,然后在你的?FMX?程序里面,把?VCL?窗口放进去。如何放进去,办法其实简单,网上也有人做了一套现成的框架可以直接拿来用。我记得在?github?看到过。如果想自己研究如何放进去,同样去参考?FMX?的?WINDOWS?版的?MediaPlayer?看看它是怎么把播放器窗口放到?FMX?的?FORM?上的。
----------------------------------------------
-
作者:
男 wang_80919 (Flying Wang) ▲▲▲▲▲ -
普通会员
2019/8/16 9:19:54
29楼: 楼上,都要给系统安装?解码器了,我们还是继续用?FMX?控件吧。有了解码器,控件正常就可以了。
----------------------------------------------
(C)(P)Flying?Wang
信息
登陆以后才能回复
Copyright ? 2CCC.Com 盒子论坛 v2.1 版权所有 页面执行19.53125毫秒 RSS