Jump to content
Nokioteca Forum

Consiglio Salvataggio File Audio


Recommended Posts

Ciao a tutti

sono nuovo su questo forum.

Mi sto avvicinando al mondo della programmazione mobile e sto sviluppando un'applicazzione per cell. tipo call recorder per la registrazione delle chiamate.

Il problema si pone al momento del salvataggio del file audio registrato perchè non so se usare l'RMS o salvare il file audio usando il File System e quindi in una qualsiasi dir.

Cosa è meglio secondo voi?

Grazie

nIn

Link to comment
Condividi su altri siti

Ciao a tutti

sono nuovo su questo forum.

Mi sto avvicinando al mondo della programmazione mobile e sto sviluppando un'applicazzione per cell. tipo call recorder per la registrazione delle chiamate.

Il problema si pone al momento del salvataggio del file audio registrato perchè non so se usare l'RMS o salvare il file audio usando il File System e quindi in una qualsiasi dir.

Cosa è meglio secondo voi?

Grazie

nIn

Beh intanto immagino tu stia parlando di Java.

Io direi che sicuramente è meglio usare il filesystem. Cosi poi uno si può copiare i file dove vuole e ascoltarseli come vuole.

Però se mancano i permessi ciò non funziona. Se non è troppo difficile potresti implementarli anche tutti e due.

Consiglio il filesystem però :thumbs:

Link to comment
Condividi su altri siti

Beh intanto immagino tu stia parlando di Java.

Io direi che sicuramente è meglio usare il filesystem. Cosi poi uno si può copiare i file dove vuole e ascoltarseli come vuole.

Però se mancano i permessi ciò non funziona. Se non è troppo difficile potresti implementarli anche tutti e due.

Consiglio il filesystem però :thumbs:

Ciao memoryn70

innanzitutto ti ringrazio per il consiglio.

Si sto parlando di J2ME ed è sempre difficile risolvere i vari intoppi nello sviluppo di una app quando si è novelli in un determinato linguaggio di programmazione.

Sono riuscito a salvare il file in uno stream ma ovviamente quando esco dall'app lo perdo.

Ho cercato allora di accedere al file System attraverso un comando tipo: rControl.setRecordLocation("file:///test.wav");

ma ottengo un errore di dir non valida.

Ti posto il codice, magari tu sai dirmi velocemente dove sbaglio:

public void registraNota() {
       try {
           int tempo = 3000;

           //creo il player partendo dalla sorgente dati ("capture://audio")
           player = Manager.createPlayer("capture://audio");
           System.out.println("sono dopo player");

           player.realize();
           System.out.println("sono dopo realize");

           //creo un RecordControl per poter registrare l'audio. Questo viene ottenuto
           //dal Player passando come stringa il nome: "RecordControl"
           recordControl = (RecordControl) player.getControl("RecordControl");
           System.out.println("sono dopo getcontrol");

           //istanzio ora un ByteArrayOutputStream su cui scrivere i dati che vengono registrati
           //baos = new ByteArrayOutputStream();
           //recordControl.setRecordStream(baos);


           ******riesco ad arrivare fin qua.    Praticamenente non riesco ad eseguire il comando successivo.
           ******Ho provato anche con altri schemi tipo: ("file:///audio.wav") e altri ma niente....

           recordControl.setRecordLocation("file:/audio.wav");
           ************************************************************************************************



           contentType = recordControl.getContentType();
           recordControl.startRecord();
           player.start();
           Thread.currentThread().sleep(tempo);
           recordControl.commit();
           player.close();

           f.append(contentType + " è il formato utilizzato \n");
           f.append("registrazione conclusa \n");
           d.setCurrent(f);
          // salvaNotaInFS();
           registrazione = true;

           //storicizzo nota in RMS
           //salvaNotaInRMS();
       } catch (IOException ex) {
           ex.printStackTrace();
           f.append(ex.toString() + "\n");
       } catch (MediaException ex) {
           ex.printStackTrace();
           f.append(ex.toString() + "\n");
       } catch (InterruptedException ex) {
           ex.printStackTrace();
           f.append(ex.toString() + "\n");
       } catch (Exception ex) {
           ex.printStackTrace();
           f.append(ex.toString() + "\n");
       }
   }

Sapresti darmi una dritta?

ti ringrazio molto

nIn

Link to comment
Condividi su altri siti

Ciao memoryn70

innanzitutto ti ringrazio per il consiglio.

Si sto parlando di J2ME ed è sempre difficile risolvere i vari intoppi nello sviluppo di una app quando si è novelli in un determinato linguaggio di programmazione.

Sono riuscito a salvare il file in uno stream ma ovviamente quando esco dall'app lo perdo.

Ho cercato allora di accedere al file System attraverso un comando tipo: rControl.setRecordLocation("file:///test.wav");

ma ottengo un errore di dir non valida.

Ti posto il codice, magari tu sai dirmi velocemente dove sbaglio:

public void registraNota() {
       try {
           int tempo = 3000;

           //creo il player partendo dalla sorgente dati ("capture://audio")
           player = Manager.createPlayer("capture://audio");
           System.out.println("sono dopo player");

           player.realize();
           System.out.println("sono dopo realize");

           //creo un RecordControl per poter registrare l'audio. Questo viene ottenuto
           //dal Player passando come stringa il nome: "RecordControl"
           recordControl = (RecordControl) player.getControl("RecordControl");
           System.out.println("sono dopo getcontrol");

           //istanzio ora un ByteArrayOutputStream su cui scrivere i dati che vengono registrati
           //baos = new ByteArrayOutputStream();
           //recordControl.setRecordStream(baos);


           ******riesco ad arrivare fin qua.    Praticamenente non riesco ad eseguire il comando successivo.
           ******Ho provato anche con altri schemi tipo: ("file:///audio.wav") e altri ma niente....

           recordControl.setRecordLocation("file:/audio.wav");
           ************************************************************************************************



           contentType = recordControl.getContentType();
           recordControl.startRecord();
           player.start();
           Thread.currentThread().sleep(tempo);
           recordControl.commit();
           player.close();

           f.append(contentType + " è il formato utilizzato \n");
           f.append("registrazione conclusa \n");
           d.setCurrent(f);
          // salvaNotaInFS();
           registrazione = true;

           //storicizzo nota in RMS
           //salvaNotaInRMS();
       } catch (IOException ex) {
           ex.printStackTrace();
           f.append(ex.toString() + "\n");
       } catch (MediaException ex) {
           ex.printStackTrace();
           f.append(ex.toString() + "\n");
       } catch (InterruptedException ex) {
           ex.printStackTrace();
           f.append(ex.toString() + "\n");
       } catch (Exception ex) {
           ex.printStackTrace();
           f.append(ex.toString() + "\n");
       }
   }

Sapresti darmi una dritta?

ti ringrazio molto

nIn

Uhm non ti saprei dire come il Java gestisce il layer che interfaccia il filesystem alle sue librerie, ma immagino sia simile a come le vedi su i filemanager.

Per toglierti i dubbi, prova a stampare a schermo il listato delle cartelle in file:// oppure file://C:\\

cmq prova

rControl.setRecordLocation("file:///C:\\test.wav"); /* O meglio con // */

EDIT: oppure usa direttamente "C:\\blabla" ma non credo...prova a verti un attimo la documentazione cosa dice

Ciao ;)

Modificato da memoryn70
Link to comment
Condividi su altri siti

Please sign in to comment

You will be able to leave a comment after signing in



Accedi Ora
 Share

×
×
  • Crea Nuovo...

Informazione Importante

Questo sito utilizza i cookie per analisi, contenuti personalizzati e pubblicità. Continuando la navigazione, accetti l'utilizzo dei cookie da parte nostra | Privacy Policy