PDA

View Full Version : اجرای mp3 در زمان خاص



mirn96
دوشنبه 06 اردیبهشت 1389, 12:33 عصر
سلام خدمت تمامی جویندگان همیشه عطش عزیز:
من برنامه ای توی J2ME نوشتم تا بیاد و یه فایل مثلا mp3 رو اجرا کنه و اونم خوشبختانه اجرا شد. مشکل وقتی جدی شد که خواستم اجرای این موزیک در زمان خاصی که در یک StringField قرار داده بودم انجام بگیره . وقتی زمان مورد نظر میرسه ، موزیک شروع بنواختن میکنه و درست یک یا دو ثانیه بعد قطع میشه . برای حل مشکل از کلاس Timer و کلاس Thread استفاده کردم ، هیچ تاثیری روی مشکل مذکور نداشت، اگر امکان راهنمایی بود دریغ نفرمایید.
قربان همه شماهایی که میدونید ونمیدونید و بدنبال دانستن هستید.

mirn96
یک شنبه 12 اردیبهشت 1389, 09:30 صبح
رندان تشنه لب را آبی نمیدهد کس گویی ولی شناسان رفتند ازین ولایت

ermia2008
دوشنبه 13 اردیبهشت 1389, 00:46 صبح
سلام دوست عزیز
برناتون رو روی امولاتور تست کردید یا گوشی؟
فایلتون کنار برنامست یا از مسیر خاصی اجراش می کنید؟
در صورت امکان برنامتون رو هم قرار بدید تا تست بشه
موفق باشید

mohsen22
چهارشنبه 15 اردیبهشت 1389, 23:39 عصر
دوست عزیز من به این سورس اجرای ام پی تری شما شدیدا احتیاج دارم . ممکنه اونو اینجا بزارین ؟

mirn96
یک شنبه 19 اردیبهشت 1389, 09:55 صبح
سلام محسن خان عزیز
من با اجازه تون سورس برنامه رو وارد میکنم . فقط باید بگم شما بجای فایل any.mp3 فایل mp3 دلخواه خودتون رو در برنامه گذاشته و اسم این قسمت رو بدلخواه وارد کنید قربان شما . اینم سورسی که بنده نوشتم :
import java.util.*;
import java.io.*;
import javax.microedition.media.*;
import javax.microedition.midlet.*;
import javax.microedition.lcdui.*;
import java.util.Calendar;
public class MusicPlaying extends MIDlet implements CommandListener {
private Form frm;
private StringItem lab;
private TextField txt;
private Command ex;
private Display dsp;
private Timer timer;
private RunTimerTask tt;
private Calendar cal;
private int i=0;
public MusicPlaying(){
frm=new Form(null);
lab=new StringItem(null,null);
txt=new TextField(null,null,10,TextField.ANY);
ex=new Command("Exit",Command.EXIT,0);
frm.append(lab);
frm.append(txt);
frm.addCommand(ex);
frm.setCommandListener(this);
}


public void startApp() {
dsp=Display.getDisplay(this);
timer = new Timer();
tt = new RunTimerTask();
timer.schedule(tt,0, 1000);
dsp.setCurrent(frm);
}
public void pauseApp() {
}
public void destroyApp(boolean unconditional) {
}
public void commandAction(Command cmd,Displayable d){
if (cmd==ex && d==frm){
notifyDestroyed();
}
}
////////////////////////////////////////////////////////////
private class RunTimerTask extends TimerTask
{
public final void run()
{
String s,d=new String();
Date alan=new Date();
cal=Calendar.getInstance(TimeZone.getDefault());
cal.toString();
s=String.valueOf(cal.toString());
cal=Calendar.getInstance();
s=String.valueOf(cal.getTime());
//^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
d=String.valueOf(s.charAt(11));
d=d+String.valueOf(s.charAt(12));
//^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
s=String.valueOf(cal.getTime());
d=d+":"+String.valueOf(s.charAt(14));
d=d+String.valueOf(s.charAt(15));
//^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
s=String.valueOf(cal.getTime());
d=d+":"+String.valueOf(s.charAt(17));
d=d+String.valueOf(s.charAt(18));
//^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

lab.setText(d);
if ((txt.getString()).equals(lab.getText())){
musicplayer();
}
}
}
////////////////////////////////////////////////////////////
private void musicplayer(){
try
{
Player p = Manager.createPlayer(getClass().
getResourceAsStream("/any.mp3"),"audio/mpeg");
p.start();
}
catch (IOException ioe) { }
catch (MediaException me) { }
}
////////////////////////////////////////////////////////////
}

در ضمن باید بگم دستوراتی که در بین خطوط 53 تا 72 نوشتم برای فراخوانی ساعت هستن . من روتینی برای این منظور سراغ نداشتم و این شکلی عمل کردم . حالا اگه شما روتین علمی تری برای فراخوانی ساعت در Midlet سراغ دارین بیزحمت منو هم راهنمایی کنین . ممنونم

mohsen22
دوشنبه 20 اردیبهشت 1389, 15:27 عصر
سلام دوست عزیز . عذر میخوام جوابتون دیر شد . اینجا (http://forum.gsmaria.com/forum117/thread5878.html) راجع به تاریخ شمسی و .. زیاد بحث کرده ایم . امیدوارم مفید واقع بشه .
موفق باشید

mohsen22
دوشنبه 20 اردیبهشت 1389, 18:28 عصر
دوست عزیز -جناب mirn96 (http://barnamenevis.org/forum/member.php?u=144047):

عذر می خوام اون لینک مال تاریخ شمسی بود اما فکر کنم به ساعت هم اشاره شده باشه

و اما این سورس پیوستی پخش mp3فکر کنم بهتر جواب بده . من تستش کردم .اینجا گذاشتم شاید مفید فایدهواسه شما و سایر دوستان باشه .

mirn96
یک شنبه 26 اردیبهشت 1389, 12:22 عصر
پدر این بی سوادی بسوزه : یکی به من بگه فایل rar.* رو چه جوری من به نوشته ام اضافه کنم تا توی این صفحه دیده بشه ؟ هر قدر تو محیط مدیریت ضمیمه ها تلاش کردم موفق نشدم . اگه ممکنه بیسواد فهم باشه بهتره . یعنی 1 این 2 این و 3 این و .... قربون همه تون

mirn96
یک شنبه 26 اردیبهشت 1389, 12:38 عصر
دوست عزیز -جناب mirn96 (http://barnamenevis.org/forum/member.php?u=144047):

عذر می خوام اون لینک مال تاریخ شمسی بود اما فکر کنم به ساعت هم اشاره شده باشه

و اما این سورس پیوستی پخش mp3فکر کنم بهتر جواب بده . من تستش کردم .اینجا گذاشتم شاید مفید فایدهواسه شما و سایر دوستان باشه .


سلام محسن خان از بذل توجه حضرتعالی ممنونم. برنامه شما زمانی که دکمه play زده میشه موزیک رو اجرا میکنه . مشکل من اینه که میخوام موزیک زمانی اجرا بشه که مقدار زمانی وارده داخل TextBox با ساعتی که در داخل StringItem در حال جریان هست برابر بشن.
من سورس خودم رو میذارم اینجا . شما اگه اونو البته نه در محیط Emulator بلکه در داخل گوشی امتحان کنین ، مشکل من وعیناً متوجه میشین. ممنونم.

holyspirit
یک شنبه 26 اردیبهشت 1389, 12:41 عصر
فکر کنم این تیکه سورس مشکلتونو حل بکنه !

mohsen22
یک شنبه 26 اردیبهشت 1389, 20:48 عصر
من که از این مثال چیزی دستگیرم نشد! ممکنه بیشتر توضیح بفرمایید؟