PDA

View Full Version : راهنمایی درمورد گذاشتن فایل صدا در دیتابیس



amirjun32
دوشنبه 20 بهمن 1393, 09:18 صبح
میخواستم اگه میشه نحوه گذاشتن فایل صوتی رو در دیتابیس بهم بگید و دوم اینکه


ما چند تافایل mp3 داریم که اسمشون به اینصورته.

mp3.1
mp3.2
mp3.3
mp3.4
mp3.5
mp3.6
mp3.7
mp3.8
mp3.9
mp3.10

من میخام اینجوری به برنامه بفهمونم که اسمها اینجوریه

Dim mp As MediaPlayer
dim i as int:i=1
(mp3.(i

Sub Button1_Click
mp.Play
i=i+1
End Sub


حالا ما میخوایم ی کلید بزاریم که باهربار فشرده شدن یک واحد به i اضافه بشه و فایل بعدیش پخش بشه.
امیدوارم که تونسته باشم منظورمو رسونده باشم.
اینم ی مثال از منظورم ک واسه فایل تکست انجام شده


Sub Process_Globals


End Sub


Sub Globals
Dim lblText As Label
Dim scvText As ScrollView
Dim spnTexts As Spinner
Dim Default, Times, Lucinda As Typeface
Dim StrUtil As StringUtils

Dim txt As String
End Sub


Sub Activity_Create(FirstTime As Boolean)


Activity.LoadLayout("LongText")

scvText.Panel.LoadLayout("LongText1")
scvText.Height = 100%y - scvText.Top

Times = Typeface.LoadFromAssets("times.ttf")
Lucinda = Typeface.LoadFromAssets("LHANDW.ttf")

FillTextFileSpinner


LoadText
SetText
End Sub


Sub Activity_Resume


End Sub


Sub Activity_Pause (UserClosed As Boolean)


End Sub


Sub FillTextFileSpinner
Dim i As Int
Dim tx As String
Dim FileList As List

FileList=File.ListFiles(File.DirAssets)
spnTexts.Clear
For i = 0 To FileList.Size-1
tx = FileList.Get(i)
If tx.SubString(tx.Length-3) = "txt" Then
spnTexts.Add(tx)
End If
Next
End Sub










Sub LoadText
txt = File.GetText(File.DirAssets,spnTexts.SelectedItem)
End Sub


Sub spnTexts_ItemClick (Position As Int, Value As Object)
LoadText
SetText
End Sub


Sub SetText
Dim ht As Float

lblText.Text = txt
ht=StrUtil.MeasureMultilineTextHeight(lblText, txt)
scvText.Panel.Height = ht
lblText.Height = ht

scvText.ScrollPosition = 0
DoEvents ' needed to execute the line above
End Sub

gilas1368
دوشنبه 20 بهمن 1393, 10:30 صبح
شما نمیتونی خوده فایل رو بزاری توی پایگاهت
باید اسم فایل رو بزاری و زمانی ک select میزنی بری و اون اسم رو از پوشه assets پیدا کنی و اجراش کنی

mrtzxxx
دوشنبه 20 بهمن 1393, 20:41 عصر
خوده فایل رو چی؟ میشه داخل یه فیلد از نوع bloob گذاشت؟؟

gilas1368
دوشنبه 20 بهمن 1393, 20:52 عصر
شما خوده فايل رو ک نميتونى بذارى تو ديتابيس
بايد اسمشو بذارى و بعد ک select زدى برى از تو پوشه assets بخونيش

amirjun32
سه شنبه 21 بهمن 1393, 16:45 عصر
شما خوده فايل رو ک نميتونى بذارى تو ديتابيس
بايد اسمشو بذارى و بعد ک select زدى برى از تو پوشه assets بخونيش


من هرکاری کردم نشد.میشه زحمت بکشی ی مثال روواسم بسازی تاخودم تغییرش بدم؟
ممنون میشم.خیلی واجبه

amirjun32
پنج شنبه 23 بهمن 1393, 10:31 صبح
آقا لطفا یک نفربه من کمک کنه.الان چندروزه گیرم سر این فایل.لطفا ی نفر اگه مثالی چیزی داره بزاره.ممنون میشم

saket601
پنج شنبه 23 بهمن 1393, 10:53 صبح
ببین:
اول: اینکه توو اسم فایلات از عدد و نقطه استفاده نکنی بهتره
بعدش: به هر اهنگ یه اسم بده، فقط اسم اهنگاتو بذار توو یه ستون از پایگاه(تا اینجا خبری از فایل نیست)
بعد فایلای اهنگتو میذاری توو یه پوشه مثلن raw (اگه نبود بسازش) که این پوشه هم باید توو پوشه res (اینجا باشه بهتره) باشه

در اخر هم واسه فراخونیشون اسم هر اهنگ رو از پایگاه میگیری، و اون اسم رو توو برنامه و توو مسیر res/raw جستجو می کنی
که اگه وجود داشت فایل شما اجرا بشه..

amirjun32
پنج شنبه 23 بهمن 1393, 11:18 صبح
ببین:
اول: اینکه توو اسم فایلات از عدد و نقطه استفاده نکنی بهتره
بعدش: به هر اهنگ یه اسم بده، فقط اسم اهنگاتو بذار توو یه ستون از پایگاه(تا اینجا خبری از فایل نیست)
بعد فایلای اهنگتو میذاری توو یه پوشه مثلن raw (اگه نبود بسازش) که این پوشه هم باید توو پوشه res (اینجا باشه بهتره) باشه

در اخر هم واسه فراخونیشون اسم هر اهنگ رو از پایگاه میگیری، و اون اسم رو توو برنامه و توو مسیر res/raw جستجو می کنی
که اگه وجود داشت فایل شما اجرا بشه..

ممنون داداش.ولی مشکل من دقیقا همین جست و جو کردنشه

gilas1368
پنج شنبه 23 بهمن 1393, 11:51 صبح
ببخشید اینو میگم
اما اول شما بگید میتونید از پایگاه داده اتون ی select بزنین؟
اگ میتونید خب ی cursor براتون برمیگردونه ک میتونید اطلاعات اون ردیف رو از توش بیرون بکشید
در مرحله بعد ینی زمانی ک شما اطلاعات اون ردیف رو از cursor بیرون کشیدید اسم اون موزیک رو پیدا میکنین و در مرحله آخر با ی خط کد اون فایل رو از پوشه raw میخونین

amirjun32
پنج شنبه 23 بهمن 1393, 12:06 عصر
ببخشید اینو میگم
اما اول شما بگید میتونید از پایگاه داده اتون ی select بزنین؟
اگ میتونید خب ی cursor براتون برمیگردونه ک میتونید اطلاعات اون ردیف رو از توش بیرون بکشید
در مرحله بعد ینی زمانی ک شما اطلاعات اون ردیف رو از cursor بیرون کشیدید اسم اون موزیک رو پیدا میکنین و در مرحله آخر با ی خط کد اون فایل رو از پوشه raw میخونین

آره.من select کردم و اسم فایلمم برگردونده،منظور من همون کد جست و جو هست.همین فقط

saket601
پنج شنبه 23 بهمن 1393, 13:24 عصر
این خوبه!؟


در اخر هم واسه فراخونیشون اسم هر اهنگ رو از پایگاه میگیری، و اون اسم رو توو برنامه و توو مسیر res/raw جستجو می کنی


int sound = c.getResources().getIdentifier(dbname.getSound(),"raw", c.getPackageName());

این هم:


MediaPlayer mp = MediaPlayer.create(activityname.this,sound);
mp.start();



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

amirjun32
پنج شنبه 23 بهمن 1393, 14:20 عصر
حالا شد.خیلی ممنون داداش

amirjun32
شنبه 25 بهمن 1393, 07:58 صبح
من برنامه رو نوشتم به اینصورت.ولی همش این خطارو میده.علتش چیه؟
128448

اینم برنامم:


#Region Project Attributes
#ApplicationLabel: B4A Example
#VersionCode: 1
#VersionName:
'SupportedOrientations possible values: unspecified, landscape or portrait.
#SupportedOrientations: unspecified
#CanInstallToExternalStorage: False
#End Region


#Region Activity Attributes
#FullScreen: False
#IncludeTitle: True
#End Region


Sub Process_Globals
'These global variables will be declared once when the application starts.
'These variables can be accessed from all modules.
Dim sql1 As SQL


Dim cur As Cursor
Type tGroup(musi As String)
Dim t1 As tGroup
Dim i As Int:i=1
End Sub


Sub Globals
'These global variables will be redeclared each time the activity is created.
'These variables can only be accessed from this module.
Dim MediaPlayer1 As MediaPlayer
End Sub


Sub Activity_Create(FirstTime As Boolean)
'Do not forget to load the layout file created with the visual designer. For example:
Activity.LoadLayout("Layout1")


If File.Exists(File.DirInternal,"mas.db")= False Then
File.Copy(File.DirAssets,"mas.db",File.DirInternal,"mas.db")
End If
'//////////////////////////
'cur = sql1.ExecQuery("SELECT musi")
cur=sql1.ExecQuery("Select*FROM musi" )
cur.Position = i
t1.Initialize
t1.musi = cur.GetString("musi")












'//////////////////////////
sql1.Initialize(File.DirInternal,"mas.db",False)
MediaPlayer1.Initialize( )
MediaPlayer1.Load(File.DirAssets, t1.musi)
MediaPlayer1.Play
'////////////////////
End Sub


Sub Activity_Resume


End Sub


Sub Activity_Pause (UserClosed As Boolean)


End Sub

saket601
شنبه 25 بهمن 1393, 11:01 صبح
ببین من با b4a کار نکردم
از پیغامت اینو متوجه شدم:
فک کنم یه مقداری رو تعریف کردی، ولی بهش مقدار ندادی یا ازش استفاده نکردی..