结果:

1.播放视频需要手动放入MediaPlayerControl1控件,设置MediaPlayerControl1.MediaPlayer := MediaPlayer1;

2.播放声音文件正常,但播放器视时发现,第一边正常第二边就报错了(哪位大神知道的,请M我哦,先谢谢了)。

3.打包时需要打入MP3与MP4文件,路径为"assets\internal\"。

PS:20160421用XE10编译在夜神上一切正常,但在小米手机2上第一边正常,第二边卡,但不报错了。

实例代码:

 unit Unit1;

 interface

 uses
System.SysUtils, System.Types, System.UITypes, System.Classes, System.Variants,
FMX.Types, FMX.Controls, FMX.Forms, FMX.Graphics, FMX.Dialogs,
FMX.Controls.Presentation, FMX.StdCtrls, FMX.Media, FMX.Layouts; type
TForm1 = class(TForm)
MediaPlayer1: TMediaPlayer;
Label1: TLabel;
Timer1: TTimer;
Layout2: TLayout;
Layout3: TLayout;
Button1: TButton;
Button2: TButton;
Button3: TButton;
TrackBar1: TTrackBar;
TrackBar2: TTrackBar;
Label2: TLabel;
Label3: TLabel;
Layout4: TLayout;
MediaPlayerControl1: TMediaPlayerControl;
Layout1: TLayout;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure TrackBar1Change(Sender: TObject);
procedure Timer1Timer(Sender: TObject);
procedure Button3Click(Sender: TObject);
procedure TrackBar2Change(Sender: TObject);
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end; var
Form1: TForm1; implementation
uses
System.IOUtils;//需要引入
{$R *.fmx}
{$R *.NmXhdpiPh.fmx ANDROID} //执行暂停按钮
procedure TForm1.Button1Click(Sender: TObject);
begin
MediaPlayer1.Stop;
Timer1.Enabled := false;
Button2.Enabled := true;
Button1.Enabled := false;
end; //执行播放按钮
procedure TForm1.Button2Click(Sender: TObject);
begin
MediaPlayer1.FileName := TPath.GetDocumentsPath + '/abc.mp3';//指定要打开的文件当然,指定 SD 卡中其它目录是文件也是可以的。
MediaPlayer1.CurrentTime := trunc((TrackBar1.Value * MediaPlayer1.Duration) / );// 播放进度调整为进度条指示位置
MediaPlayer1.Volume := TrackBar2.Value;//音量也调整到音量指示值
MediaPlayer1.Play;//播放
Timer1.Enabled := true;
Button2.Enabled := false;
Button1.Enabled := true;
end; procedure TForm1.Button3Click(Sender: TObject);
begin
MediaPlayer1.FileName := IncludeTrailingPathDelimiter(TPath.GetDocumentsPath) + 'abc.mp4';//指定要播放的视频文件
MediaPlayer1.Play;
Timer1.Enabled := true;
end; //设置视频在哪里显示
procedure TForm1.FormCreate(Sender: TObject);
begin
MediaPlayerControl1.MediaPlayer := MediaPlayer1;
end; procedure TForm1.Timer1Timer(Sender: TObject);
var
handler: TNotifyEvent;
begin
handler := TrackBar1.OnChange;
TrackBar1.OnChange := nil;//暂时取消其 OnChange 事件
TrackBar1.Value := int((MediaPlayer1.CurrentTime / MediaPlayer1.Duration) * );
//更新进度条的指示
Label2.Text := inttostr(trunc(MediaPlayer1.CurrentTime / )) + ':' +
inttostr(trunc(MediaPlayer1.CurrentTime / -
trunc(MediaPlayer1.CurrentTime / ) * ));
//显示声音文件所剩下的播放时间,分:秒
Label3.Text := inttostr(trunc(MediaPlayer1.Duration / )) + ':' +
inttostr(trunc(MediaPlayer1.Duration / - trunc(MediaPlayer1.Duration /
) * ));//显示声音文件总的播放时间,分:秒
TrackBar1.OnChange := handler; //还原其 OnChange 事件
//播放完毕后的处理
if MediaPlayer1.CurrentTime >= MediaPlayer1.Duration - then//如果播放完了
begin
MediaPlayer1.Stop;
TrackBar1.Value:=;
Button2.Enabled := true;
Button1.Enabled := false;
Timer1.Enabled := false;
end;
end; //滑动进度条时,改变播放进度
procedure TForm1.TrackBar1Change(Sender: TObject);
begin
MediaPlayer1.CurrentTime := trunc((TrackBar1.Value * MediaPlayer1.Duration) / );
end; //滑动音量调节条时,改变播放音量
procedure TForm1.TrackBar2Change(Sender: TObject);
begin
MediaPlayer1.Volume := TrackBar2.Value;
end; end.

Android实例-MediaPlayer播放音乐和视频(XE8+小米2)的更多相关文章

  1. Android实例-获取安卓手机WIFI信息(XE8+小米2)

    结果: 1.必须打开Access wifi state权限,不打开权限会出图二的错误. 相关资料: http://blog.csdn.net/lyf_lyf/article/category/1735 ...

  2. Android实例-程序界面内截取屏幕(XE8+小米2)

    结果: 1.只能截取程序界面内的图片. 2.图片有点不清楚,自己设置清楚度. 实例代码: unit Unit1; interface uses System.SysUtils, System.Type ...

  3. Android实例-解决虚拟键盘遮挡问题(XE8+小米2)

    结果: 1.可以自动向上移动,来防遮挡,但同时发现个问题,如果是按硬件返回没有问题,要是点输入法(QQ.百度输入法)上的隐藏就不行了. 2.点击Edit2后出现输入法,点输入法上的隐藏后, 再点Edi ...

  4. Android实例-监测网络状态及一些事件(XE8+小米2)

    结果: 1.网络连接:是指现在可不可以上网(你非要问我什么是网,我会K你呀的). 2.WIFI网络:是指现在可以上网,用的是不是WIFI网络(如果你打开了WIFI那它会显示正在使用WIFI). 3.移 ...

  5. Android实例-解决启动黑屏问题(XE8+小米2)

    结果: 1.在启动时马上出现图片界面,但在出现程序界面前会有黑屏,大约有0.2秒左右. 实现: 1.建立2个文件:loading.png和styles.xml: ①其中loading.png是启动时替 ...

  6. Android实例-如何使用系统剪切板(XE8+小米2)

    结果: 发现个问题,就是粘贴时会清除之前的信息. unit Unit1; interface uses System.SysUtils, System.Types, System.UITypes, S ...

  7. Android学习总结(十六) ———— MediaPlayer播放音频与视频

    一.基本概念 本文主要介绍的是Android中很重要也最为复杂的媒体播放器(MediaPlayer)部分的架构.Android的MediaPlayer包含了Audio和video的播放功能,在Andr ...

  8. Android播放器推荐:可以播放本地音乐、视频、在线播放音乐、视频、网络收音机等

    下载链接:http://www.eoeandroid.com/forum.php?mod=attachment&aid=MTAxNTczfGMyNjNkMzFlfDEzNzY1MzkwNTR8 ...

  9. Android 使用MediaPlayer 播放 视频

    http://pan.baidu.com/s/1lgKLS package cn.bgxt.surfaceviewdemo; import java.io.File; import android.m ...

随机推荐

  1. 如何在Ubuntu下启动Apache的Rewrite功能

    在终端中执行 sudo a2enmod rewrite 指令后,即启用了 Mod_rewrite 模块. 另外,也可以通过将 /etc/apache2/mods-available/rewrite.l ...

  2. Linux---More命令 初级实现

    Linux: more已实现:more filename , quit不需要回车未实现:command | more 重定向 ,显示百分比 Waiting... /* Linux: more 已实现: ...

  3. 2013 Multi-University Training Contest 5 Partition

    思路:五边形数定理!!! 五边形数定理是一个由欧拉发现的数学定理,描述欧拉函数展开式的特性.欧拉函数的展开式如下: 亦即 欧拉函数展开后,有些次方项被消去,只留下次方项为1, 2, 5, 7, 12, ...

  4. linux 文件比对总结

    1. 过滤a.log的重复数据 #统计 cat datatest.log|sort|uniq -d |wc -l #放入b.log cat datatest.log|sort|uniq -d > ...

  5. ANDROID_MARS学习笔记_S01_008Linear_layout例子

    1.netstone_layout.xml <?xml version="1.0" encoding="utf-8"?> <LinearLay ...

  6. Android:Resources资源文件

    Android Resoureces是res目录下的那些目录和文件,常用的有: res/drawable/ 存放图片资源,类型有: 相关使用: Android:res之shape制作圆角 Androi ...

  7. 初始化windows窗口

    LRESULT WINAPI WndProc(HWND hWnd,UINT msg,WPARAM wParam,LPARAM lParam) { PAINTSTRUCT ps; switch (msg ...

  8. Android 进程保活招式大全

    目前市面上的应用,貌似除了微信和手Q都会比较担心被用户或者系统(厂商)杀死问题.本文对 Android 进程拉活进行一个总结. Android 进程拉活包括两个层面: A. 提供进程优先级,降低进程被 ...

  9. Android 应用开发性能优化完全分析

    1 背景 其实有点不想写这篇文章的,但是又想写,有些矛盾.不想写的原因是随便上网一搜一堆关于性能的建议,感觉大家你一总结.我一总结的都说到了很多优化注意事项,但是看过这些文章后大多数存在一个问题就是只 ...

  10. fork、vfork、clone区别

    在Linux中主要提供了fork.vfork.clone三个进程创建方法. 问题 在linux源码中这三个调用的执行过程是执行fork(),vfork(),clone()时,通过一个系统调用表映射到s ...