من دارم یه برنامه می نویسم که داخلش پلیر داره و موزیک پخش میکنه که قابلیت play/pause داره . بدون هیچ مشکلی هم کار میکنه . منتهی حجم برنامه خیلی زیاد شده و میخوام وقتی کاربر روی کلید play کلیک میکنه . اگر فایل صوتی روی حافظه گوشی بود پخشش کنه و اگر نبود یک پیغام بیاد که آیا فایل رو دانلود میکنید یا نه . اگر ok زد فایل رو دانلود کنه و واسه سری های بعد که خواست پخشش کنه و پلی بزنه دیگه روی گوشی باشه و نیاز به دانلود کردن نداشته باشه .
الان کد من اینه
#Region Activity Attributes
#FullScreen: true
#IncludeTitle: false
#End Region
Sub Process_Globals
Dim MediaPlayer1 As MediaPlayer
Dim timer1 As Timer
End Sub
Sub Globals
Dim barPosition As SeekBar
Dim barVolume As SeekBar
Dim lblPosition As Label
Dim Looping As ToggleButton
Private Button1 As Button
Private Button2 As Button
Private m1scroll As ScrollView
Dim phone1 As PhoneWakeState
End Sub
Sub Activity_Create(FirstTime As Boolean)
phone1.KeepAlive(True)
If FirstTime Then
MediaPlayer1.Initialize( )
MediaPlayer1.Load(File.DirAssets, "monajat1.mp3")
timer1.Initialize("timer1", 1000)
End If
Activity.LoadLayout("m1")
m1scroll.Panel.LoadLayout("m1layout")
Looping_CheckedChange(Looping.Checked) 'set the default value
End Sub
Sub Button1_Click
MediaPlayer1.Play
Button1.visible = False
Button2.visible = True
End Sub
Sub Button2_Click
MediaPlayer1.Pause
Button2.visible = False
Button1.visible = True
End Sub
Sub Activity_Resume
MediaPlayer1.Play
timer1.Enabled = True
timer1_Tick 'don't wait one second for the UI to update.
End Sub
Sub Activity_Pause (UserClosed As Boolean)
If MediaPlayer1.IsPlaying Then MediaPlayer1.Pause
timer1.Enabled = False
End Sub
Sub timer1_Tick
If MediaPlayer1.IsPlaying Then
barPosition.Value = MediaPlayer1.Position / MediaPlayer1.Duration * 100
lblPosition.Text = "Position: " & ConvertToTimeFormat(MediaPlayer1.Position) & _
" (" & ConvertToTimeFormat(MediaPlayer1.Duration) & ")"
End If
End Sub
'converts milliseconds to m:ss format.
Sub ConvertToTimeFormat(ms As Int) As String
Dim seconds, minutes As Int
seconds = Round(ms / 1000)
minutes = Floor(seconds / 60)
seconds = seconds Mod 60
Return NumberFormat(minutes, 1, 0) & ":" & NumberFormat(seconds, 2, 0) 'ex: 3:05
End Sub
Sub barVolume_ValueChanged (Value As Int, UserChanged As Boolean)
MediaPlayer1.SetVolume(barVolume.Value / 100, barVolume.Value / 100)
End Sub
Sub barPosition_ValueChanged (Value As Int, UserChanged As Boolean)
If UserChanged = False Then Return 'the value was changed programmatically
MediaPlayer1.Position = Value / 100 * MediaPlayer1.Duration
If MediaPlayer1.IsPlaying = False Then 'this can happen when the playback reached the end and the user changes the position
MediaPlayer1.Play
End If
timer1_Tick 'immediately update the progress label
End Sub
Sub Looping_CheckedChange(Checked As Boolean)
MediaPlayer1.Looping = Checked
End Sub
سوال
ah313mad 34
سلام دوستان عزیز خسته نباشید
من دارم یه برنامه می نویسم که داخلش پلیر داره و موزیک پخش میکنه که قابلیت play/pause داره . بدون هیچ مشکلی هم کار میکنه . منتهی حجم برنامه خیلی زیاد شده و میخوام وقتی کاربر روی کلید play کلیک میکنه . اگر فایل صوتی روی حافظه گوشی بود پخشش کنه و اگر نبود یک پیغام بیاد که آیا فایل رو دانلود میکنید یا نه . اگر ok زد فایل رو دانلود کنه و واسه سری های بعد که خواست پخشش کنه و پلی بزنه دیگه روی گوشی باشه و نیاز به دانلود کردن نداشته باشه .
الان کد من اینه
لینک ارسال
به اشتراک گذاری در سایت های دیگر
1 پاسخ به این سوال تاکنون داده شده است
ارسالهای توصیه شده
بایگانی شده
این موضوع بایگانی و قفل شده و دیگر امکان ارسال پاسخ نیست.