我正在为Delphi XE10 for Android编写一个私人使用的媒体播放器应用程序。我想使用android均衡器但不知道如何。 JEqualizer接口在Androidapi.JNI.Media中公开(与其他soundfx函数一样)。我有两个具体问题:
1。)我在从android界面创建delphi对象方面不是很先进。我只是做以下事情:
var
equ : jequalizer;
begin
equ := tjequalizer.wrap((sharedactivitycontext.getsystemservice(tjcontext.JavaClass.AUDIO_SERVICE) as ILocalObject).getobjectid);
2.。)要创建均衡器,我需要媒体播放器的音频,而不是在Delphi媒体播放器对象中公开。知道我怎么能得到它吗?
答案 0 :(得分:0)
经过大量的失败尝试后,我终于找到了答案。 答案的第一部分是,似乎不可能将音频效果与delphi tmediaplayer对象一起使用。 但是:如果您自己创建Android媒体播放器,则可能。 在这种情况下,结果应用程序将不再是跨平台的。 因此,对于可能需要它的每个人来说,这里的解决方案是低音效应的代码:
var //shoud be no local variables of course, but defined in your forms scope
mp: JMediaPlayer;
bb: JBassboost;
begin
mp := tjmediaplayer.Create;
mp.reset;
mp.setdatasource(StringToJString(Edit1.text)); // in edit1.text I have the path to an mp3 file
mp.prepare;
mp.start; //now the mediaplayer is playing music
bb := tjbassboost.javaclass.init(0, mp.getAudioSessionId);
bb.setEnabled(true);
bb.setStrength(1000); //value 0-1000. now the effect is applied
end;