توقف موقت موزیک حین تماس یا پخش ویدئو از گوشی در B4A
🎧 بطور عادی اگر توسط MediaPlayer موزیکی رو در برنامتون لود و پخش کنید، موقع تماس کاربر یا پخش موزیک و ویدئو، موسیقی شما همینطور درحال پخش باقی میمونه و در نتیجه موسیقی شما با تماس یا موسیقی کاربر دچار اختلال میشه.
با آموزشی که در اختیار شما قرار دادیم میتونید این مورد رو با requestAudioFocus در Basic4Android مدیریت کنید، یعنی میتونیم بگیم هنگام تماس یا پخش ویدئو و… موزیک ما یک لحظه Pause و دوباره Play بشه. / با ما همراه باشید…
✅ آموزش قطع موزیک حین تماس یا پخش ویدئو و… در بیسیک۴اندروید
۱- کتابخانه JavaObject و Phone رو فعال کنید
۲- قبل از اینکه MediaPlayer خودتون رو Initialize و Play کنید کد های زیر رو قرار بدید:
Dim jo As JavaObject jo.InitializeContext jo = jo.RunMethod("getSystemService", Array("audio")) Dim event As Object = jo.CreateEventFromUI("android.media.AudioManager.OnAudioFocusChangeListener", _ "audio", Null) Dim p As Phone Log(jo.RunMethod("requestAudioFocus", Array (event, p.VOLUME_MUSIC, 2)))
۳- حالا کافیه رویداد زیر رو در همون ماژولی که کد بالا رو قرار دادید، پیست کنید و داخل اون موزیک خودتون رو مدیریت کنید. برای مثال ما حین تماس یا پخش ویدئو و… موسیقی خودمون رو Pause و زمانی که قطع میشه موسیقی رو Play کردیم:
Sub audio_Event (MethodName As String, Args() As Object) As Object Try Log(Args(0)) '-۱: موقع پخش موزیک یا ویدئو '-۲: موقع تماس '۱: قطع شدن ویدئو یا تماس If Args(0)=-2 Or Args(0)=-1 Then MediaPlayer.Pause else if Args(0)=1 Then If MediaPlayer.IsPlaying=False Then MediaPlayer.Play End If Catch End Try Return Null End Sub
✏️ منبع: کافه توسعه