Android实例-MediaPlayer播放音乐和视频(XE8+小米2)

结果:

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

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

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

实例代码:

  1 unit Unit1;
  2
  3 interface
  4
  5 uses
  6   System.SysUtils, System.Types, System.UITypes, System.Classes, System.Variants,
  7   FMX.Types, FMX.Controls, FMX.Forms, FMX.Graphics, FMX.Dialogs,
  8   FMX.Controls.Presentation, FMX.StdCtrls, FMX.Media, FMX.Layouts;
  9
 10 type
 11   TForm1 = class(TForm)
 12     MediaPlayer1: TMediaPlayer;
 13     Label1: TLabel;
 14     Timer1: TTimer;
 15     Layout2: TLayout;
 16     Layout3: TLayout;
 17     Button1: TButton;
 18     Button2: TButton;
 19     Button3: TButton;
 20     TrackBar1: TTrackBar;
 21     TrackBar2: TTrackBar;
 22     Label2: TLabel;
 23     Label3: TLabel;
 24     Layout4: TLayout;
 25     MediaPlayerControl1: TMediaPlayerControl;
 26     Layout1: TLayout;
 27     procedure Button1Click(Sender: TObject);
 28     procedure Button2Click(Sender: TObject);
 29     procedure TrackBar1Change(Sender: TObject);
 30     procedure Timer1Timer(Sender: TObject);
 31     procedure Button3Click(Sender: TObject);
 32     procedure TrackBar2Change(Sender: TObject);
 33     procedure FormCreate(Sender: TObject);
 34   private
 35     { Private declarations }
 36   public
 37     { Public declarations }
 38   end;
 39
 40 var
 41   Form1: TForm1;
 42
 43 implementation
 44 uses
 45   System.IOUtils;//需要引入
 46 {$R *.fmx}
 47 {$R *.NmXhdpiPh.fmx ANDROID}
 48
 49 //执行暂停按钮
 50 procedure TForm1.Button1Click(Sender: TObject);
 51 begin
 52   MediaPlayer1.Stop;
 53   Timer1.Enabled := false;
 54   Button2.Enabled := true;
 55   Button1.Enabled := false;
 56 end;
 57
 58 //执行播放按钮
 59 procedure TForm1.Button2Click(Sender: TObject);
 60 begin
 61   MediaPlayer1.FileName := TPath.GetDocumentsPath + ‘/abc.mp3‘;//指定要打开的文件当然,指定 SD 卡中其它目录是文件也是可以的。
 62   MediaPlayer1.CurrentTime := trunc((TrackBar1.Value * MediaPlayer1.Duration) / 100);// 播放进度调整为进度条指示位置
 63   MediaPlayer1.Volume := TrackBar2.Value;//音量也调整到音量指示值
 64   MediaPlayer1.Play;//播放
 65   Timer1.Enabled := true;
 66   Button2.Enabled := false;
 67   Button1.Enabled := true;
 68 end;
 69
 70 procedure TForm1.Button3Click(Sender: TObject);
 71 begin
 72   MediaPlayer1.FileName := IncludeTrailingPathDelimiter(TPath.GetDocumentsPath) + ‘abc.mp4‘;//指定要播放的视频文件
 73   MediaPlayer1.Play;
 74   Timer1.Enabled := true;
 75 end;
 76
 77 //设置视频在哪里显示
 78 procedure TForm1.FormCreate(Sender: TObject);
 79 begin
 80   MediaPlayerControl1.MediaPlayer := MediaPlayer1;
 81 end;
 82
 83 procedure TForm1.Timer1Timer(Sender: TObject);
 84 var
 85   handler: TNotifyEvent;
 86 begin
 87   handler := TrackBar1.OnChange;
 88   TrackBar1.OnChange := nil;//暂时取消其 OnChange 事件
 89   TrackBar1.Value := int((MediaPlayer1.CurrentTime / MediaPlayer1.Duration) * 100);
 90   //更新进度条的指示
 91   Label2.Text := inttostr(trunc(MediaPlayer1.CurrentTime / 60000)) + ‘:‘ +
 92   inttostr(trunc(MediaPlayer1.CurrentTime / 1000 -
 93   trunc(MediaPlayer1.CurrentTime / 60000) * 60));
 94   //显示声音文件所剩下的播放时间,分:秒
 95   Label3.Text := inttostr(trunc(MediaPlayer1.Duration / 60000)) + ‘:‘ +
 96   inttostr(trunc(MediaPlayer1.Duration / 1000 - trunc(MediaPlayer1.Duration /
 97   60000) * 60));//显示声音文件总的播放时间,分:秒
 98   TrackBar1.OnChange := handler; //还原其 OnChange 事件
 99   //播放完毕后的处理
100   if MediaPlayer1.CurrentTime >= MediaPlayer1.Duration - 1000 then//如果播放完了
101   begin
102     MediaPlayer1.Stop;
103     TrackBar1.Value:=0;
104     Button2.Enabled := true;
105     Button1.Enabled := false;
106     Timer1.Enabled := false;
107   end;
108 end;
109
110 //滑动进度条时,改变播放进度
111 procedure TForm1.TrackBar1Change(Sender: TObject);
112 begin
113   MediaPlayer1.CurrentTime := trunc((TrackBar1.Value * MediaPlayer1.Duration) / 100);
114 end;
115
116 //滑动音量调节条时,改变播放音量
117 procedure TForm1.TrackBar2Change(Sender: TObject);
118 begin
119   MediaPlayer1.Volume := TrackBar2.Value;
120 end;
121
122 end.
时间: 2024-10-13 20:49:14

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

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

结果: 1.必须打开Access wifi state权限,不打开权限会出图二的错误. 相关资料: http://blog.csdn.net/lyf_lyf/article/category/173576 实例代码: 1 unit Unit1; 2 3 interface 4 5 uses 6 System.SysUtils, System.Types, System.UITypes, System.Classes, System.Variants, 7 FMX.Types, FMX.Contr

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

结果: 1.可以自动向上移动,来防遮挡,但同时发现个问题,如果是按硬件返回没有问题,要是点输入法(QQ.百度输入法)上的隐藏就不行了. 2.点击Edit2后出现输入法,点输入法上的隐藏后, 再点Edit2输入法不再显示. 实例代码: 1 unit Unit1; 2 3 interface 4 5 uses 6 System.SysUtils, System.Types, System.UITypes, System.Classes, System.Variants, 7 FMX.Types, F

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

1.网络连接:是指现在可不可以上网(你非要问我什么是网,我会K你呀的). 2.WIFI网络:是指现在可以上网,用的是不是WIFI网络(如果你打开了WIFI那它会显示正在使用WIFI). 3.移动网络:是指现在可以上网,用的是不是移动网络(如果你打开了移动的数据流量它会显示移动网络). 第三方单元: 1 unit Androidapi.JNI.Network; 2 3 interface 4 5 function IsConnected: Boolean; 6 7 function IsWiFiC

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

结果: 1.在启动时马上出现图片界面,但在出现程序界面前会有黑屏,大约有0.2秒左右. 实现: 1.建立2个文件:loading.png和styles.xml: ①其中loading.png是启动时替代黑屏的图片. ②styles.xml是对背景图片的定义,其内容为: 1 <resources> 2 3 <!-- 4 Base application theme, dependent on API level. This theme is replaced 5 by AppBaseThe

Android开发---MediaPlayer简单音乐播放器

Android开发-MediaPlayer简单音乐播放器 功能介绍 实现一个简单的播放器,类似网易云音乐形式,功能包括: 播放.暂停,停止,退出功能: 后台播放功能: 进度条显示播放进度.拖动进度条改变进度功能: 播放时图片旋转,显示当前播放时间功能: 界面样式 功能实现 1. MediaPlayer的实现 MediaPlayer常用方法介绍 MediaPlayer的实现包括初始化MediaPlayer,MediaPlayer的功能实现,包括播放.暂停.停止.离开等,具体细节如下: MediaP

Android MediaPlayer播放音乐并实现进度条

提前工作,往sd卡里放音乐文件 1.布局文件main.xml <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="

Android实现在线播放音乐

原文地址:http://blog.csdn.net/wwj_748/article/details/20933055 在此感谢原作者 效果实现: 下面介绍具体实现过程: 定义一个具有缓冲效果的播放器:Player 我们看到的缓冲效果,是通过设置拖动条SeekBar的二级进度实现的,这就要设置MediaPlayer的缓冲更新的监听了. 具体代码实现: package com.wwj.download.util; import java.io.IOException; import java.uti

Android使用Service播放音乐

像音乐这种耗时的和适合后台操作的应当放在Service中进行操作,而不是放在Activity,下面就介绍使用Service的音乐播放器 先创建一个MusicService 配置清单中会自动生成 改Service的声明 在MusicService中的Java代码,里面包含了音乐的相关操作 public class MusicService extends Service { private String path = "mnt/sdcard/123.mp3"; private Media

Qt Quick 多媒体 - 播放音乐和视频

MediaPlayer 是 QML 提供的核心多媒体类,可以播放音频.视频.要使用 MediaPlayer,需要引入 QtMultimedia 模块,在 QML 文档的开始加入 "import QtMultimedia 5.0" 语句.QML 中的 MediaPlayer 是 Qt C++ 中的多媒体框架在 QML 环境中的代言人,假如以 Qt QuickApp 为模板创建项目,你还需要在 pro 文件中加入语句:QT += multimedia. 一.播放音乐 先看最简单的播放音乐的