رفتن به مطلب

مینی سورس انتخاب و پخش موزیک از حافظه در b4a


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

با استفاده از این مینی سورس یادمیگیرید تا یک فایل صدا از حافظه گوشی انتخاب کنید و سپس در برنامه آن را پخش بنمایید.

سورس:

Sub Process_Globals
	Private mp As MediaPlayer
	'کتابخانه پخش موزیک
End Sub

Sub Globals

	Dim FilePath As String
	'متغیر ذخیره مسیر فایل
	
	Private LabelDir As Label
	Private LabelFile As Label
	Private LabelFilePath As Label
	Private Action_Play As Label
	Private Action_Stop As Label
	Private Label3 As Label
	'ویوهای برنامه
End Sub

Sub Activity_Create(FirstTime As Boolean)
	Activity.LoadLayout("Layout1")
	
	mp.Initialize
	'راه اندازی کتابخانه پخش کننده موسیقی
End Sub

Sub Activity_Resume
End Sub

Sub Activity_Pause (UserClosed As Boolean)
	
End Sub

Sub Button1_Click As ResumableSub
	Dim cc As ContentChooser
	'تعریف کتابخانه انتخاب صدا از حافظه برنامه
	cc.Initialize("cc")
	'راه اندازی کتابخانه
	cc.Show("audio/*", "نمایش فایل های صدا")
	'نمایش متن انتخاب صدا
	wait for cc_Result (Success As Boolean, Dir As String, FileName As String)

	If Success Then
		LabelDir.Text  = Dir
		LabelFile.Text = FileName
		'نمایش مسیر فایل

		Private rp As RuntimePermissions
		rp.CheckAndRequest(rp.PERMISSION_READ_EXTERNAL_STORAGE)
		Wait For Activity_PermissionResult (permission As String, Result As Boolean)
		If Result = False Then
			Return Null
		End If
		'گرفتن مجوز خواندن حافظه
		
		FilePath = GetPathFromContentResult(LabelFile.Text, "audio")
		LabelFilePath.Text = FilePath
		'نمایش آدرس فایل و دریافت مسیر فایل به صورتی که بشه آن را خواند
		
	Else
		LabelDir.Text = "محتوایی وجود ندارد"
		LabelFile.Text = ""
		LabelFilePath.Text = ""
	End If
	'این شرط موفق بودن انتخاب فایل صدا را چک میکند
	
	Action_Play.Visible = Success
	
	Label3.Visible=True
	
	Return Null
End Sub

Sub Action_Play_Click
	mp.Load("", FilePath)
	mp.Play
	Action_Stop.Visible = True
End Sub
'پخش صدای انتخاب شده

Sub Action_Stop_Click
	mp.Stop
	Action_Stop.Visible = False
End Sub
'توقف پخش

Sub GetPathFromContentResult(UriString As String, MediaType As String) As String
	If UriString.StartsWith("/") Then Return UriString 'If the user used a file manager to choose the image
	Dim Cursor1 As Cursor
	Dim Uri1 As Uri
	Dim Proj() As String = Array As String("_data")
	Dim cr As ContentResolver
	cr.Initialize("")
	If UriString.StartsWith("content://com.android.providers.media.documents") Then
		Dim i As Int = UriString.IndexOf("%3A")
		Dim id As String = UriString.SubString(i + 3)
		Uri1.Parse($"content://media/external/${MediaType}/media"$) ' MediaType: images, audio
		Cursor1 = cr.Query(Uri1, Proj, "_id = ?", Array As String(id), "")
	Else
		Uri1.Parse(UriString)
		Cursor1 = cr.Query(Uri1, Proj, "", Null, "")
	End If
	Cursor1.Position = 0
	Dim res As String
	res = Cursor1.GetString("_data")
	Cursor1.Close
	Return res
End Sub
'مسیر صدا در این بخش تبدیل به مسیر خواندنی میشود

طراح و تهیه کننده:
مرتضی صباغی
MR.B4A

https://eitaa.com/basic4androidlan

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

بایگانی شده

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

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

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