رفتن به مطلب
  • 0

تنظیمات مربوط به دانلود و پلیر


faxmodem

سوال

با سلام

من یک نرم افزار دارم که میخوام وقتی کاربر به فرم مربوطه رفت یه دکمه دانولد گذاشتم با 2 تا ایمیج ویو که یکی برای پخش و یکی برای توقف هستش

 

برنامه در حالت عادی میره از مسیر مربوطه دانلود میکنه و با دکمه پلی هم پخش میشه مشکلی با این ندارم

 

ولی مشکلاتی که داره

 

1- میخوام وقتی کاربر برای اولین بار وارد برنامه میشه دکمه پلی و توقف غیر فعال باشه یا کلا محو باشه که بعد از دانلود که کامل شد نمایش داده شود

2- برای دفعات بعدی که کاربر وارد برنامه میشه چک کنه اگه فایل قبلا دانلود شده باشه دکمه های دانلود محو باشند یا کلا غیر فعال باشند

 

این سورس کد

#Region  Activity Attributes 
	#FullScreen: true
	#IncludeTitle: false
#End Region

Sub Process_Globals
	Private link1 As String = "http://www.irmp3.ir/downloadp/s/eyJjdCI6Ikx5Wk1MSmxFaTJXbWQvZUw2UU9ad1E9PSIsIml2IjoiYjAxYTNjMWY4NGQ5NDVhZTEyNzE0OTgxMGEzZTMxMWUiLCJzIjoiODI2OWJhZTZlOTkxZDEwYiJ9.mp3"
		Dim mediaplayer1 As MediaPlayer
		Dim timer1 As Timer
End Sub
' www.Basic4Android.org
Sub Globals
	Dim ProgressBar1 As ProgressBar
	Dim Label1 As Label
	Dim btnDownload As Button
	Dim btnCancel As Button
	Private lbltitle As Label
	Private ProgressBar2 As ProgressBar
	Private lblPosition As Label
	Private barPosition As SeekBar
	Private barVolume As SeekBar
	Private Label3 As Label
	Private Looping As ToggleButton
End Sub

Sub Activity_Create(FirstTime As Boolean)
	If FirstTime Then
	mediaplayer1.Initialize()
	End If
	Activity.LoadLayout("player")
	lbltitle.Text = "گنجینه اول"
End Sub

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 timer1_Tick
	If mediaplayer1.IsPlaying Then
		barPosition.Value = mediaplayer1.Position / mediaplayer1.Duration * 100
		lblPosition.Text = "مدت زمان : " & ConvertToTimeFormat(mediaplayer1.Position) & _
			" (" & ConvertToTimeFormat(mediaplayer1.Duration) & ")"
	End If
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 btnDownload_Click
	Dim dd As DownloadData
	dd.url = link1
	dd.EventName = "dd"
	dd.Target = Me
	CallSubDelayed2(DownloadService, "StartDownload", dd)
End Sub

Sub dd_Progress(Progress As Long, Total As Long)
	ProgressBar1.Progress = Progress / Total * 100
	Label1.Text = NumberFormat(Progress / 1024, 0, 0) & "KB / " & _
	NumberFormat(Total / 1024, 0, 0) & "KB"
End Sub

Sub dd_Complete(Job As HttpJob)
	Log("Job completed: " & Job.Success)
	Job.Release
End Sub

Sub btnCancel_Click
	CallSubDelayed2(DownloadService, "CancelDownload", link1)
End Sub

Sub play_Click
	
		mediaplayer1.Load(File.DirInternal,"Mehrdad_Asemani-Konje_Mahtab-(WWW.IRMP3.IR).mp3")
		timer1.Initialize("timer1",1000)
		mediaplayer1.Play
		timer1.Enabled = True
		timer1_Tick
End Sub
Sub pause_Click
	If mediaplayer1.IsPlaying Then mediaplayer1.Pause
	timer1.Enabled = False
End Sub

Sub Activity_Resume

End Sub

Sub Activity_Pause (UserClosed As Boolean)
	If mediaplayer1.IsPlaying Then mediaplayer1.Pause
	timer1.Enabled = False
End Sub
لینک ارسال
به اشتراک گذاری در سایت های دیگر

10 پاسخ به این سوال تاکنون داده شده است

ارسال‌های توصیه شده

درود

یک آهنگ ثابت هست فقط ؟؟؟

لینک ارسال
به اشتراک گذاری در سایت های دیگر

توی قسمت  first time کد را گذاشتم ولی کار نمیکنه فکر کنم آدرس فایل خودم را اشتباه میدم چطور برای برنامه مشخص کنم که مثلا فایلهایی این برنامه را کپی کن توی پوشه x مثلا از مموری یا حافظع خود گوشی؟!

لینک ارسال
به اشتراک گذاری در سایت های دیگر

اره توی این اکتیویتی آره

چند تا اکتیویتی دارم اونا لینکاشون فرق داره برای این یکی بگیریم چی میشه مشکلم تا حدودی حل میشه

 

مرسی استاد عزیززز

لینک ارسال
به اشتراک گذاری در سایت های دیگر

یک متغییر از نوع اینتجر داریم i که از 0 تا 10 رو میشمره

اسم اهنگ های ما از 0 شروع میشه تا 10 مثلاً mp3.0

حالا میای میگی اگر در این مسیر فایل وجود داشت پنل یا دکمه رو نشون نده

If File.Exists(File.DirRootExternal,"/mp3downloded/"&i&".mp3")=True Then
	p1.Visible=False
End If

اگر میخوای یک فایل رو چک کنه باید این کد رو بنویسی تو مسیر موجود در حافظه خارجی گوشی چک کنه

برای مثال اسم اهنگ 1 هست

چک کرده اگر فایل نبود پنل محو بشه در غیر اینصورت پنل رو نمایش بده

If File.Exists(File.DirRootExternal,"/mp3downloded/1.mp3")=True Then
	p1.Visible=False
else
p1.Visible=true
End If
لینک ارسال
به اشتراک گذاری در سایت های دیگر

این باید دانلود کنه

قبلش که شرطی باشه اول میخوام دانلود شده باشه یا نه را چک کنه !!!!!! اگه نبود دانلود فعال باشه اگه بود نباشه !

و با هر بار ورود و خرج به برنامه چک کنه این شرط برای اون موقع ج میده !! فکر کنم

لینک ارسال
به اشتراک گذاری در سایت های دیگر

خب یه سوال کاربر باید خودش دانلود کنه یا خودکار دانلود میشه؟

 

اگه هنگام ورود خود کار دانلود میشه کاربر باید صبر کنه دانلود تموم بشه

بعد شرط اجرا میشه

اون مسیر دانلود شده رو با اسم فایل چک میکنه ببینه فایل موجود هست یا خیر اگه فایل وجود داشت شئ مورد نظری که تعیریف کردی نمایش داده بشه

 

اگه کاربر باید روی یک کلیک بزنه دانلود بشه که خب باید تمام ویو هایی که میخوای نمایش داده نشد رو محو یا ویزیبل رو فالس کنی بعد این شرط رو اجرا کنی

اگر میتونی الان از سورست ران بگیر و اجراش کن بهم بگو که چه کار کردی مرسی

لینک ارسال
به اشتراک گذاری در سایت های دیگر

درست شد
:lmaosmiley:

 

فقط وقتی انتقال میدم روی گوشی وقتی دانلود داره تموم میشه پیغام میده که مسیر پیش فرض پیدا نکرده ولی روی مجازی ساز خوبه کار میکنه ؟؟؟ پرمیژن رایت روی مموری هم بهش دادم !!!

 

به نظر خودم مشکل از اینه که باید یه مسیر ثابت برای محل دانلود و ذخیره فایلها بهش معرفی کنم ؟؟؟ حالا چجوری شما دوستان راهنمایی کنید؟!!!

لینک ارسال
به اشتراک گذاری در سایت های دیگر

برای اینکه بتونی فایل هایی که دانلود میشن رو هدایت کنی سمت یک پوشه باید داخل اکتیویتی کریت از پارامتر های file استفاده کنی

Dim pathdl As String
pathdl= File.DirRootExternal & "/dlfolder"
If File.Exists(pathdl) = False Then
	File.MakeDir(File.DirRootExternal,"/dlfolder")
	Else
	'file sakhte shode 	
End If

تو این کد گفتیم یه متغییر رشته ای ساختیم

ادرس یک فولدر تو حافظه خارجی رو ریختیم داخل متغییر

بعد با شرط چک کردیم که اگر فولدر وجود داشت دیگه نیازی به ساخت پوشه نیست

این شرط برای این هستش که دفعه های بعدی که برنامه باز میشه تشخیص بده که فولدر از قبل وجود داشته یا نه

وقتی پوشه رو ساختی فایل هارو زمانی که دانلود میشن ادرس این پوشه رو بده تا بره پیدا کنه

حالا تا اینجای کار پوشه رو ساختی و فایلت داخلش دانلود شده

با اون شرطی که گفتم بهت دکمه پخش نمایان میشه و میتونی برای دکمه پخش هم ادرس این پوشه ای که ساختی رو بدی به همراه اسم فایلی که دانلود شده تا بیاد فایل رو پخش کنه

لینک ارسال
به اشتراک گذاری در سایت های دیگر

نه کاربر میبینه اگه دوست داشت دانلود میکنه؟

خودکار دانلود نمیشه

خب از همون راهی که گفتم برو ویو های پخش رو مقدارvisible رو false قرار بده تا وقتی دانلود شد داخل رویداد کامل شدن دانلود مقدارش بشه true این راه حلته جز این فکر نکنم راه دیگه ای باشه

لینک ارسال
به اشتراک گذاری در سایت های دیگر

بایگانی شده

این موضوع بایگانی و قفل شده و دیگر امکان ارسال پاسخ نیست.

  • کاربران آنلاین در این صفحه   0 کاربر

    • هیچ کاربر عضوی،در حال مشاهده این صفحه نیست.
×
×
  • اضافه کردن...