Playda oynayan video'nun ses seviyesini label ve Progress göstermek istiyorum, kısmende göstere bildim fakat video da ses seviyesi düşmesi veya yükselmesi durumunda nasıl göstere bilirim...
procedure TForm2.SesseviyeTimer(Sender: TObject);
var
X, Y: Real;
begin
begin
with MediaPlayer1 do
begin
if Media <> Nil then
begin
X := Int(MediaPlayer1.volume * 100);
Y := Int(MediaPlayer1.volume * 100);
Sesseviye.Text := FloatToStr(X) + '%';
ProgressBar2.Value := (Y);
end;
end;
end;
end;
Bahettiğin bir Vu-Metre mi yapmak hani sese göre yukarı aşağı veya sağa sola gidip gelen ?
Verdiğin kod sadece sistem ses seviye değerini alır ve gösterir.
- Bu işlem için Firemonkey'in paylaşılmış örneğini görmedim. Bulursan haberimiz olsun. Firemonkey destekli bir VCL paketi var görünüyor ama oldukça pahalı.
- Normal Windows tipi uygulama olsa MMSystem unitiyle ilişkili örnekler var. Belki uydurup çalıştırabilirsin diyerek Torry linkini vereyim denemelerin için temel oluştursun. Bu linkten inceleyebilirsin.
Windows Vista ile birlikte audio api'lerinde bazı değişiklikler oldu. "Windows Core Audio" başlığı ile aratır iseniz çeşitli faydalı sonuçlara ulaşabilirsiniz. Bu API'ler vasıtası ile sistem üzerinde tanımlı olan ses cihazlarına erişebilir, endpointler vasıtası ile istediğiniz kanalın ses seviyesini elde edebilir yada değiştirebilirsiniz. Ancak; şimdiden söyleyeyim Delphi'de tanımlı COM nesne tanımları bulunmuyor. Benim yaptığım gibi siz de el ile tanımlamalısınız şimdilik.