엠바카데로 블로그에 HARUYUKI MOHRI가 작성한 C++빌더로 iOS 시스템 볼륨 제어하는 내용이 있어 델파이로 작업해 봤습니다.
원글 : https://community.embarcadero.com/blogs/entry/how-to-control-the-system-audio-volume-of-ios?utm_source=Facebook_Organic&utm_medium=social
아래와 같이 Up/Down 버튼을 누르면 시스템 볼륨을 제어합니다.
MPVolumeView 클래스(iOSapi.MediaPlayer.pas)와 UISlider 클래스(iOSapi.UIKit.pas)를 사용했습니다.
uses 절에 "iOSapi.MediaPlayer, iOSapi.UIKit" 추가해야 합니다.
다음 2개 변수를 선언해야 합니다.
private { Private declarations } FMPVolumeView: MPVolumeView; FSlider: UISlider;
구현된 델파이 코드는 아래와 같습니다.
procedure TForm1.FormCreate(Sender: TObject); var I, J: Integer; begin FMPVolumeView := TMPVolumeView.Create; I := 0; J := FMPVolumeView.subviews.count; if I = J then begin log.d(''); end; if FMPVolumeView.subviews.count > 0 then begin FSlider := TUISlider.Wrap(FMPVolumeView.subviews.objectAtIndex(0)); FSlider.setValue(0.0); end; end; procedure TForm1.btnVolumeUpClick(Sender: TObject); var Vol: Single; begin Vol := FSlider.value; FSlider.setValue(Vol + 0.1); end; procedure TForm1.btnVolumeDownClick(Sender: TObject); var Vol: Single; begin Vol := FSlider.value; FSlider.setValue(Vol - 0.1); end;
샘플 프로젝트