سلام عزیزان من یه برنامه دارم گیتاره ، با soundpool زدم ، مولتی تاچ روش هست ولی وقتی میخوام لیست صدا ها رو عوض کنم اجرا نمیکنه مشکل چیه میشه کمک کنید؟ چیجوری میتونم لیست صدا رو جایگزین کنم؟
Sub Activity_Create(FirstTime As Boolean)
phonewake.KeepAlive(True)
Activity.LoadLayout("mainguitar")
list_TOUCHING.Initialize
list_TOUCHED.Initialize
Ges.SetOnTouchListener(Activity, "GesturesTouch")
TouchMap.Initialize
achord="loadsound"
setallpanels
mc1.Initialize2("mc1")
mc2.Initialize2("mc2")
mc3.Initialize2("mc3")
Panel1.Visible=False
AndroidViewAnimations1.Initialize("AndroidViewAnimations1")
If piano_mp.IsInitialized = True Then Return
piano_mp.Initialize(6)
For i = 0 To pnl_keys.Length-1
piano_mp.Load(File.DirAssets, i & ".mp3")
Next
end sub
Sub setallpanels
pnl_keys(0) = key1
pnl_keys(1) = key2
pnl_keys(2) = key3
pnl_keys(3) = key4
pnl_keys(4) = key5
pnl_keys(5) = key6
End Sub
Sub Activity_Resume
End Sub
Sub Activity_Pause (UserClosed As Boolean)
setallkeystofalse
End Sub
Sub setallkeystofalse
list_TOUCHING.Clear
list_TOUCHING.Clear
TouchMap.Clear
resetcolors
End Sub
Sub resetcolors
End Sub
Sub GesturesTouch(View As Object, PointerID As Int, Action As Int, X As Float, Y As Float) As Boolean
Dim p As Point
Select Action
Case Ges.ACTION_DOWN, Ges.ACTION_POINTER_DOWN
p.Id = PointerID
TouchMap.Put(PointerID, p)
Case Ges.ACTION_POINTER_UP
TouchMap.Remove(PointerID)
Case Ges.ACTION_UP
setallkeystofalse
End Select
list_TOUCHING.Clear 'reset touching list
For i = 0 To TouchMap.Size - 1
Dim px, py As Int
p = TouchMap.GetValueAt(i)
px = Ges.GetX(p.id)
py = Ges.GetY(p.id)
For Each pnl As Panel In pnl_keys
If px > pnl.Left And px < pnl.Left + pnl.Width Then
If py > pnl.Top And py < pnl.Top + pnl.Height Then
If pnl.Tag > 4 Then
If list_TOUCHED.IndexOf("0") > -1 Or list_TOUCHED.IndexOf("1") > -1 Or list_TOUCHED.IndexOf("2") > -1 Or list_TOUCHED.IndexOf("3") > -1 Or list_TOUCHED.IndexOf("4") > -1 Then
If py < pnl_keys(0).Height Then
If pnl.Tag = "5" Or pnl.Tag = "6" Then 'right side
If px > (pnl.Left + pnl.Width) - (pnl_keys(0).Width / 2) Then Continue
else if pnl.Tag = "6" Or pnl.Tag = "11" Then 'left side
If px < pnl.Left + (pnl_keys(0).Width / 2) Then Continue
else if pnl.tag = "6" Then
'do nithing - full white key
Else
If px > (pnl.Left + pnl.Width) - (pnl_keys(0).Width / 2) Or px < pnl.Left + (pnl_keys(0).Width / 2) Then Continue
End If
End If
End If
End If
list_TOUCHING.Add(pnl.Tag)
If list_TOUCHED.IndexOf(pnl.Tag) = -1 Then
list_TOUCHED.Add(pnl.Tag)
If achord="loadsound" Then
piano_mp.Play(pnl.Tag+1,1,1,1,0,1)
Else If achord="am" Then
piano_mp1.Play(pnl.Tag+1,1,1,1,0,1)
end if
end sub
در واقع کد جایگزاری فایل موسیقی این کد هست
If piano_mp.IsInitialized = True Then Return
piano_mp.Initialize(6)
For i = 0 To pnl_keys.Length-1
piano_mp.Load(File.DirAssets, i & ".mp3")
Next
سوال
mohammade79 127
سلام عزیزان من یه برنامه دارم گیتاره ، با soundpool زدم ، مولتی تاچ روش هست ولی وقتی میخوام لیست صدا ها رو عوض کنم اجرا نمیکنه مشکل چیه میشه کمک کنید؟ چیجوری میتونم لیست صدا رو جایگزین کنم؟
Sub Activity_Create(FirstTime As Boolean) phonewake.KeepAlive(True) Activity.LoadLayout("mainguitar") list_TOUCHING.Initialize list_TOUCHED.Initialize Ges.SetOnTouchListener(Activity, "GesturesTouch") TouchMap.Initialize achord="loadsound" setallpanels mc1.Initialize2("mc1") mc2.Initialize2("mc2") mc3.Initialize2("mc3") Panel1.Visible=False AndroidViewAnimations1.Initialize("AndroidViewAnimations1") If piano_mp.IsInitialized = True Then Return piano_mp.Initialize(6) For i = 0 To pnl_keys.Length-1 piano_mp.Load(File.DirAssets, i & ".mp3") Next end sub Sub setallpanels pnl_keys(0) = key1 pnl_keys(1) = key2 pnl_keys(2) = key3 pnl_keys(3) = key4 pnl_keys(4) = key5 pnl_keys(5) = key6 End Sub Sub Activity_Resume End Sub Sub Activity_Pause (UserClosed As Boolean) setallkeystofalse End Sub Sub setallkeystofalse list_TOUCHING.Clear list_TOUCHING.Clear TouchMap.Clear resetcolors End Sub Sub resetcolors End Sub Sub GesturesTouch(View As Object, PointerID As Int, Action As Int, X As Float, Y As Float) As Boolean Dim p As Point Select Action Case Ges.ACTION_DOWN, Ges.ACTION_POINTER_DOWN p.Id = PointerID TouchMap.Put(PointerID, p) Case Ges.ACTION_POINTER_UP TouchMap.Remove(PointerID) Case Ges.ACTION_UP setallkeystofalse End Select list_TOUCHING.Clear 'reset touching list For i = 0 To TouchMap.Size - 1 Dim px, py As Int p = TouchMap.GetValueAt(i) px = Ges.GetX(p.id) py = Ges.GetY(p.id) For Each pnl As Panel In pnl_keys If px > pnl.Left And px < pnl.Left + pnl.Width Then If py > pnl.Top And py < pnl.Top + pnl.Height Then If pnl.Tag > 4 Then If list_TOUCHED.IndexOf("0") > -1 Or list_TOUCHED.IndexOf("1") > -1 Or list_TOUCHED.IndexOf("2") > -1 Or list_TOUCHED.IndexOf("3") > -1 Or list_TOUCHED.IndexOf("4") > -1 Then If py < pnl_keys(0).Height Then If pnl.Tag = "5" Or pnl.Tag = "6" Then 'right side If px > (pnl.Left + pnl.Width) - (pnl_keys(0).Width / 2) Then Continue else if pnl.Tag = "6" Or pnl.Tag = "11" Then 'left side If px < pnl.Left + (pnl_keys(0).Width / 2) Then Continue else if pnl.tag = "6" Then 'do nithing - full white key Else If px > (pnl.Left + pnl.Width) - (pnl_keys(0).Width / 2) Or px < pnl.Left + (pnl_keys(0).Width / 2) Then Continue End If End If End If End If list_TOUCHING.Add(pnl.Tag) If list_TOUCHED.IndexOf(pnl.Tag) = -1 Then list_TOUCHED.Add(pnl.Tag) If achord="loadsound" Then piano_mp.Play(pnl.Tag+1,1,1,1,0,1) Else If achord="am" Then piano_mp1.Play(pnl.Tag+1,1,1,1,0,1) end if end sub
در واقع کد جایگزاری فایل موسیقی این کد هست
If piano_mp.IsInitialized = True Then Return piano_mp.Initialize(6) For i = 0 To pnl_keys.Length-1 piano_mp.Load(File.DirAssets, i & ".mp3") Next
لینک ارسال
به اشتراک گذاری در سایت های دیگر
0 پاسخ به این سوال تاکنون داده شده است
ارسالهای توصیه شده
بایگانی شده
این موضوع بایگانی و قفل شده و دیگر امکان ارسال پاسخ نیست.