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

قطع نشدن پخش آهنگ


qasem

سوال

سلام دوستان یه برنامه صوتی زدم وقتی که آهنگ در حال پخشه هنگامی که صفحه گوشی بعد از چند ثانیه خاموش میشه پخش آهنگ متوقف میشه این مشکل را با PhoneWakeState حل کردم  اما مشکل اینجاست که این کد میاد صفحه گوشی را  روشن نگه میداره واین باعث میشه باطری گوشی زود تموم بشه

آیا راهی هست که حتی بعد از خاموش شدن صفحه گوشی پخش آهنگ متوقف نشه تا اینکه خود کاربر متوقفش کنه؟

 

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

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

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

لطفا کدهای بالا را یه نظر بیندازید و بگید کدوم کدها را توی سرویس قرار بدم؟

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

خب از قسمت project - add new module - code module رو بیار این کدها رو توش بنویس که من اسمشو گذاشتم mediaa

'Code module
'Subs in this code module will be accessible from all modules.
Sub Process_Globals
	'These global variables will be declared once when the application starts.
	'These variables can be accessed from all modules.
	Dim ph As MediaPlayer
End Sub

Sub play
ph.Initialize2("")
ph.Load(File.DirAssets,"Mohsen Chavoshi - Beraghsa [128].mp3")
ph.play
End Sub

تو اکتیویتی کریت مربوط به اکتیویتی main اینم بنویس mediaa.play

این کد ارور میده!!!؟؟؟

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

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

سلام.

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

اون کدی که آقا پویا دادن تست کنید،در رابطه با قفل...

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

سلام.

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

اون کدی که آقا پویا دادن تست کنید،در رابطه با قفل...

اگه منظورتان porya هست آره اون را هم تست کردم تو دفعه اول که برنامه را باز میکنی و یه فایلی را پخش میکنی جواب میده اما همین که میری آهنگ دیگه را پخش کنی (یعنی هنوز از برنامه خارج نشدی) باز دوباره همون مشکل پیش میاد یعنی وقتی صفحه قفل شد پخش آهنگ متوقف میشه!!!! کدی نیست که مانع قفل شدن صفحه گوشی بشه؟؟؟

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

خب چرا اینقد خودتون رو اذیت میکنید؟

از سرویس استفاده کنید و تموم.

اگه بلد نیستید آماده کردم ::دانلود :: کنید.

جای اسم آهنگ ، اسم اهنگ خودتون رو وارد کنید.

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

آقای نیک روان عزیز من برای فراخوانی آهنگ هام از دیتابیس استفاده کردم ، از تایمر استفاده کردم ، از عکس استفاده کردم و... کدام هاشو بیارم تو سرویس؟

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

آقای نیک روان عزیز من برای فراخوانی آهنگ هام از دیتابیس استفاده کردم ، از تایمر استفاده کردم ، از عکس استفاده کردم و... کدام هاشو بیارم تو سرویس؟

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

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

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

آقا من دیوانه شدم هر کار کردم یه اروری داد نشد که نشد اگه زحمتی براتون نیست من کدها را تو صفحه قرار میدم دقیقا بگید کدام ها را تو سرویس بزنم


Sub Process_Globals
	Dim timer1 As Timer
End Sub

Sub Globals
	Dim i As Int:i=0
	Dim mediaplayer1 As MediaPlayer
	Private onvan As Label
	Dim cur As Cursor
	Private like As ImageView
	Dim Label1 As Label
	Private Label2 As Label
	Private SeekBar1 As SeekBar
	Private imgbodi As ImageView
	Private barvolom As SeekBar
End Sub

Sub Activity_Create(FirstTime As Boolean)
	Activity.LoadLayout("matn")
	timer1.Initialize("timer1", 1000)
	cur = menu.sql1.ExecQuery("SELECT * FROM teresi_tbl WHERE onvan = '" & menu.meghdar & "'")
	cur.Position = 0
	Label2.Typeface = Typeface.LoadFromAssets("BKoodkBd.ttf")
	onvan.TextColor = Colors.RGB(224, 28, 8)
	onvan.TextSize = 18
	onvan.Text = cur.GetString ("onvan")
	If cur.GetInt("favorite") = 0 Then 
		like.Bitmap = LoadBitmap(File.DirAssets,"unlike.png")
	Else 
		like.Bitmap = LoadBitmap(File.DirAssets,"like.png")
	End If
	If File.Exists(File.DirInternal,"berayanteresi.db")=False Then
		File.Copy(File.DirAssets,"berayanteresi.db",File.DirInternal,"berayanteresi.db")
	End If
	menu.SQL1.Initialize(File.DirInternal,"berayanteresi.db",False)

	Try
	cur = menu.sql1.ExecQuery("SELECT * FROM teresi_tbl WHERE onvan = '" & menu.meghdar & "'")
	cur.Position=i
	Label1.Text=cur.GetString("file")
	Catch
	Return
	End Try
	imgbodi.Bitmap = Namayesh
	mediaplayer1.Initialize( )
    mediaplayer1.Load(File.DirAssets, Label1.Text)
	
 End Sub
 
 
 Sub Namayesh As Bitmap
	Dim cur As Cursor
	cur = menu.sql1.ExecQuery("SELECT aks FROM teresi_tbl WHERE onvan = '" & menu.meghdar & "'")
	cur.Position = 0
	
	Dim bytes() As Byte
	bytes = cur.GetBlob("aks")
	
	Dim input As InputStream
	input.InitializeFromBytesArray(bytes,0,bytes.Length)
	
	Dim b As Bitmap
	b.Initialize2(input)
	input.Close
	Return(b)
End Sub

Sub Activity_Resume
    timer1.Enabled = True
    timer1_Tick
End Sub

Sub Activity_Pause (UserClosed As Boolean)
    If mediaplayer1.IsPlaying Then
		 mediaplayer1.Pause
	End If
    timer1.Enabled = False
End Sub

Sub timer1_Tick
	If mediaplayer1.IsPlaying Then
		SeekBar1.Value = mediaplayer1.Position / mediaplayer1.Duration * 100
		Label2.Text = "زمان :" & ConvertToTimeFormat(mediaplayer1.Position) & _
		" (" & ConvertToTimeFormat(mediaplayer1.Duration) & ")"
	End If
End Sub

Sub ConvertToTimeFormat(ms As Int) As String
    Dim seconds, minutes As Int
    seconds = Round(ms / 1000)
    minutes = Floor(seconds / 50)
    seconds = seconds Mod 50
    Return NumberFormat(minutes, 1, 0) & ":" & NumberFormat(seconds, 2, 0) 'ex: 3:05
End Sub

Sub barPosition_ValueChanged (Value As Int, UserChanged As Boolean)
    If UserChanged = False Then Return
	    mediaplayer1.Position = Value / 100 * mediaplayer1.Duration
    If mediaplayer1.IsPlaying = False Then 'in halat zamani etefagh  miofte k music b akhar reside v karbar neshangaro b aval montaghel  mikone
        mediaplayer1.Play
    End If
    timer1_Tick 
End Sub

Sub like_Click
	cur = menu.sql1.ExecQuery("SELECT * FROM teresi_tbl WHERE onvan = '" & menu.meghdar & "'")
	cur.Position = 0
	If cur.GetInt("favorite") = 0 Then
		menu.sql1.ExecNonQuery("UPDATE teresi_tbl SET favorite = 1 WHERE onvan = '" & menu.meghdar & "'")
		like.Bitmap = LoadBitmap(File.DirAssets,"like.png")
		ToastMessageShow("به علاقه مندی ها اضافه شد",False)
	Else
		menu.sql1.ExecNonQuery("UPDATE teresi_tbl SET favorite = 0 WHERE onvan = '" & menu.meghdar & "'")
		like.Bitmap = LoadBitmap(File.DirAssets,"unlike.png")
		ToastMessageShow("از علاقه مندی ها حذف شد",False)
	End If
End Sub

Sub play_Click
	If mediaplayer1.IsPlaying Then
		mediaplayer1.Stop
	Else
		mediaplayer1.Initialize( )
		mediaplayer1.Load(File.DirAssets, Label1.Text)
		mediaplayer1.play
	End If
End Sub

Sub pause_Click
	If mediaplayer1.IsPlaying Then 
		mediaplayer1.Pause
	Else
		mediaplayer1.Play
	End If
End Sub

Sub stop_Click
	mediaplayer1.Stop
End Sub

Sub barvolom_ValueChanged (Value As Int, UserChanged As Boolean)
	mediaplayer1.SetVolume(barvolom.Value / 100, barvolom.Value / 100)
End Sub

Sub Activity_KeyPress (KeyCode As Int) As Boolean 
	If KeyCode = KeyCodes.KEYCODE_BACK Then
		mediaplayer1.Stop
		Activity.Finish
	End If
	Return True
End Sub
لینک ارسال
به اشتراک گذاری در سایت های دیگر

از سرویس استفاده کن خب.

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

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

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

سلام.

مطمئنید وقتی صفحه خاموش میشه اهنگ متوقف میشه؟؟

وقتی صفحه خاموش میشه اکتیویتی Pause میشه ، درصورتی آهنگ متوقف میشه که داخل رویداد Pause نوشته شده باشه قطع بشه.

 

اما اگه به این صورت نیست همون سرویس رو پیشنهاد میکنم.

خیلی سادست از منوی Project یه service Module اد کنید و همون کارایی که تو اکتیویتی انجام دادید تو سرویس انجام بدید.

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

آره مطمئن هستم .

یعنی تمام کدهایی که تو اکتیویتی ماژول زدم را بیارم تو سرویس؟ میشه لطف کنی بگی دقیقا کدوم کدها را به سرویس ببرم؟

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

برادرم، کدهایی که برای اجرای اهنگ و ... هست رو در سرویس بنویسید و بعد مثلا در رویداد کلیک یا اکتیویتی کریت برنامه اتون، بیاین و اون سرویس رو صدا کنید

شروع میکنه به کار و کدهایی که قرار دادید رو ، براتون اجرا میکنه

حتی اگر در پس زمینه باشه :gol:

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

خب از قسمت project - add new module - code module رو بیار این کدها رو توش بنویس که من اسمشو گذاشتم mediaa

'Code module
'Subs in this code module will be accessible from all modules.
Sub Process_Globals
	'These global variables will be declared once when the application starts.
	'These variables can be accessed from all modules.
	Dim ph As MediaPlayer
End Sub

Sub play
ph.Initialize2("")
ph.Load(File.DirAssets,"Mohsen Chavoshi - Beraghsa [128].mp3")
ph.play
End Sub

تو اکتیویتی کریت مربوط به اکتیویتی main اینم بنویس mediaa.play

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

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

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

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

 

این کدو امتحان کن ببین جواب میده

Sub Activity_pause(userclosed As Boolean)
	If userclosed=False Then
	ph.play
	End If
End Sub
لینک ارسال
به اشتراک گذاری در سایت های دیگر

بایگانی شده

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

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

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