laz4android play a mp3 need what uses-permission?
i have write a mediaplayer unit ,but it can not run ,i do not know where is wrong?
code put here:
unit mediaplayer;
{$mode objfpc}{$H+}
interface
uses
Classes, SysUtils,jni,customdrawnint;
var
jmediaplayer_class:jclass;
jmediaplayer_jobject:jobject;
create_id:jmethodid;
setdatasource_id:jmethodid;
prepare_id:jmethodid;
start_id:jmethodid;
release_id:jmethodid;
procedure media_create();
procedure SetDataSource(path: string);
procedure Prepare();
procedure Start();
procedure Release();
implementation
procedure media_create();
begin
jmediaplayer_class:=javaEnvRef^^.FindClass(javaEnvRef,'android/media/MediaPlayer');
create_id:= javaEnvRef^^.GetMethodID(javaEnvRef, jmediaplayer_class, '<init>', '()V');
setdatasource_id:= javaEnvRef^^.GetMethodID(javaEnvRef, jmediaplayer_class, 'SetDataSource', '(Ljava/lang/String;)V');
prepare_id:= javaEnvRef^^.GetMethodID(javaEnvRef, jmediaplayer_class, 'Prepare', '()V');
start_id:= javaEnvRef^^.GetMethodID(javaEnvRef, jmediaplayer_class, 'Start', '()V');
release_id:= javaEnvRef^^.GetMethodID(javaEnvRef, jmediaplayer_class, 'Release', '()V');
jmediaplayer_jobject:=javaEnvRef^^.NewObject(javaEnvRef,jmediaplayer_class,create_id);
end;
procedure SetDataSource(path: string);
var
lParams: array[0..0] of jValue;
begin
lParams[0].l := javaEnvRef^^.NewStringUTF(javaEnvRef, PChar(path));
javaEnvRef^^.CallVoidMethodA(javaEnvRef, jmediaplayer_jobject,setdatasource_id, @lParams[0]);
javaEnvRef^^.DeleteLocalRef(javaEnvRef, lParams[0].l);
end;
procedure Prepare();
begin
javaEnvRef^^.CallVoidMethod(javaEnvRef, jmediaplayer_jobject,prepare_id);
end;
procedure Start();
begin
javaEnvRef^^.CallVoidMethod(javaEnvRef, jmediaplayer_jobject,start_id);
end;
procedure Release();
begin
javaEnvRef^^.CallVoidMethod(javaEnvRef, jmediaplayer_jobject,release_id);
end;
end.