الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

تحميل audio file in midlet

مغلق
بدأه sali في 17 يوليو 2007 · 3 رد · 2,076 مشاهدة · في JavaME
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

هل أستطيع تحميل audio file من موقع انترنت من خلال تطبيق للموبايل واستخدام هذا الملف ضمن نفس الميدلت

كأن أعيد سماعه

وهل أستطيع تحميل text file من خلال ميدلت واستخدامه بداخلها

وإذا كان ممكن أين تنزل الملفات وتحفظ؟

وماهي لاحقة ملفات الصوت الممكن استخدامها(amr ممكن ؟؟؟؟؟)

وشكراً للاهتمام وهذا المنتدى

#2

يمكنني الإفادة في هذا السؤال ولكنني لاأضمن أن إجابتي هي الصحيحة وقد يفيد فيها الخبراء في هذا القسم أكثر مني, فهذه أول مشاركة لي في هذا المنتدى الرائع وأتمنى أن أساعد في تقديم الفائدة للجميع

اقتباس
هل أستطيع تحميل audio file من موقع انترنت من خلال تطبيق للموبايل واستخدام هذا الملف ضمن نفس الميدلت

كأن أعيد سماعه

بالنسبة لجواب السؤال هو نعم يمكن ذلك

سأقدم مثال بسيط مع شرح موجز عنه.

دعونا ننظر لهذا الكود :

import javax.microedition.media.*;

import javax.microedition.media.control.*;

import java.io.*;

private MIDletController controller;

private Player player;

private VolumeControl volumeControl;

private String url;

public AudioPlayer(MIDletController controller){

this.controller = controller;

}

public void initializePlayer(String url){

this.url = url;

Thread initializer = new Thread(this);

initializer.start();

}

public void run(){

try {

player = Manager.createPlayer(url);

controller.updateProgressGauge();

player.addPlayerListener(controller);

player.realize();

controller.updateProgressGauge();

player.prefetch();

controller.updateProgressGauge();

volumeControl = (VolumeControl)player.getControl("VolumeControl");

if (volumeControl != null) {

volumeControl.setLevel(50);

}

else {

controller.removeVolumeControl();

}

startPlayer();

} catch (IOException ioe) {

controller.showAlert("Unable to connect to resource", ioe.getMessage());

closePlayer();

} catch (MediaException me) {

controller.showAlert("Unable to create player", me.getMessage());

closePlayer();

}

}

public void startPlayer(){

try{

if (player != null){

player.start();

}

} catch (MediaException me) {

controller.showAlert("MediaException thrown", me.getMessage());

}

}

public void setVolume(int level){

if (volumeControl != null) {

volumeControl.setLevel(level);

}

}

public void stopPlayer(){

try {

if (player != null) {

player.stop();

}

} catch (MediaException me) {

controller.showAlert("MediaException thrown", me.getMessage());

}

}

public void closePlayer(){

if (player != null){

player.close();

}

player = null;

volumeControl = null;

}

}

كما نرى بأن الكائن Player (مشغل الصوت) هو المسؤل عن تشغيل ملف الصوت, ويمر بهذه الحالات الثلاث :

puplic void startPlayer()

puplic void stopPlayer()

puplic void closePlayer()

و بما أن ملف الصوت الذي نريد تشغيله سيكون في الإنترنت فإن تحميله سيستغرق وقتاً حسب حجم الملف وسرعة الاتصال ولذلك قمنا بتهيئة الكائن Player في مسار أو مسلك Thread منفصل. وكما نرى بأننا أضفنا المتنصت PlayerListener الذي سيقوم بالتنبيه عن أحداث مشغل الصوت Player. أما بالنسبة عنصر التحكم (VolumeControl) والخاص بالتحكم يحجم الصوت بما فيها كتم الصوت فهو ليس بضروري ولكن تمت إضافته هنا للإفادة. بعد إكتمال تحميل الملف قمنا بتحديد حجم الصوت على المستوى 50 ثم يتم بعدها استدعاء أحد هذه الطرق.

الطريقة StartPlayer() تستخدم لبدء تشغيل ملف صوتي أو لإعادة تشغيل ملف صوتي قد تمت تهيئته مسبقاً.

الطريقة stopPlayer() تستخدم لإيقاف المشغل بشكل مؤقت.

الطريقة setVolume() تستخدم لتغيير حجم أو مستوى الصوت عن طريق المتحكم VolumeControl

الطريقة closePlayer() تستخدم لتحرير كافة الموارد التي تم حجزها لمشفل الصوت Player

أحب أنا انبه بأني عندما قلت تحميل الملف فأنا اقصد تحميل الملف إلى الذاكرة العشوائية للهاتف ليتم تشغيل الملف مباشرة وليس تحميل الملف إلى ذاكرة الهاتف وحفظها.

يوجد في المرفقات الكود السابق بالإضافة إلى الملف JAR لتحميل التطبيق على الهاتف, لقد قمت بتجربته ويعمل بشكل جيد على هواتف السلسة 60 (Series 60). عند تحميل الملف إلى الهاتف وتشغيله سيطلب منك موقع الملف على الإنترنت وسيظهر لك رابط بشكل إفتراضي لملف صوت في موقع شركة sun يمكن الموافقة عليه للتجربة. سيبدأ البرنامج بطلب الاتصال بالإنترنت ( يجب أن تكون متصلأ بالإنترنت فعلاً قبل الموافقة وإلا ستظهر لك رسالة خطأ). بعد الموافقة سيتم تحميل الملف ويمكنك تشغيله.

ملوحظة : لا يعمل التطبيق على المحاكيات Emulators واعتقد لأنه يتطلب اتصال بالانترنت.

اقتباس
وماهي لاحقة ملفات الصوت الممكن استخدامها(amr ممكن ؟؟؟؟؟)

منصلة عمل مطوري السلسلة 60 (Series 60) من أجهزة نوكيا Nokia تدعم هذه الملفات :

Wave Audio يكون امتداد الملف .wav

AMR Audio يكون امتداد الملف .amr

Nokia Ring Tone يكون امتداد الملف .rng

MIDI يكون امتداد الملف .mid

Scalable Polyphonic MIDI يكون امتداد الملف أيضاً .mid

اقتباس
وهل أستطيع تحميل text file من خلال ميدلت واستخدامه بداخلها

وإذا كان ممكن أين تنزل الملفات وتحفظ؟

لا أستطيع حالياً الإجابة على هذا السؤالين وسأتركهما لباقي الأعضاء.

وأرجو أن تعذروني في حال الخطأ أو التقصير

AudioPlayer.zip

تم تعديل هذه المشاركة بواسطة X-Dev في 18 يوليو 2007 في 02:03

#3

شكراً للرد

أنا أريد حفظ ملف الصوت عندي لاستخدامه فيما بعد هل ممكن ذلك؟

فكرة البرنامج أنه يستقبل ملف صوت ويشغله لمدة أسبوع مثلاً ثم يحمل ملف صوت جديد

ماهي خيارات استقبال هذا الملف وحفظه

فكرت في 1- تحميله من الانترنت وحفظه (كيف أحفظه؟؟ وهل هنال حدود لحجم الملف؟؟)

2- أن يصل كmms , ولكن أيضاً هل ممكن حفظه في مسار معين واستخدامه في الميدلت؟؟

وشكراً جزيلاً

#4

السلام عليكم

بسم الله

ملاحظة صغيرة تحميل الصوت لايعمل في midp 1.0

حسب معلوماتي المتواضعه حيث قمت بتجربته يعني حزمة الميديا غير موجودة في ال midp 1.0

وقراءة الملف النصي ممكنه يعني ملف txt

وهذا مثال لقراءة الملف النصي

import java.io.*;

import javax.microedition.midlet.MIDlet;

import javax.microedition.lcdui.*;

public class myfile extends MIDlet implements

CommandListener {

String input;

Display display;

Command cmdExit = new Command("exit",

Command.EXIT,0);

Command cmdload = new Command("load",

Command.SCREEN,1);

Form form;

String str;

public void loadfile() throws Exception {

try {

InputStream is = getClass(

).getResourceAsStream("/muhanned.txt");

InputStreamReader r = new

InputStreamReader(is);

char[] buffer = new char[100000];

StringBuffer sb = new StringBuffer( );

r.read(buffer,0,100000);

sb.append(buffer, 0,100000);

str = sb.toString( );

str = str.trim();

form.append(str);

is.close();

}

catch (IOException ex) {str = "Failed to load text";}

}

public void startApp()

{display =Display.getDisplay(this);

form = new Form("loading text");

form.addCommand(cmdExit);

form.addCommand( cmdload );

form.setCommandListener(this);

display.setCurrent(form);

}

public void pauseApp(){ }

public void destroyApp(boolean unconditional){}

/***************** CommandListener *****************/

public void commandAction(Command c, Displayable s)

{

if (c == cmdExit)

{

destroyApp(false);

notifyDestroyed();

} // end Exit

else if (c == cmdload){ try { loadfile() ; }

catch (Exception e) { }

}

} // end commandAction

} // end Class

هذا الموضوع مغلق.

مواضيع مشابهة