Autore Topic: inserire content al file audio  (Letto 600 volte)

Offline frecciak

  • Utente normale
  • ***
  • Post: 231
  • Respect: +16
    • Mostra profilo
  • Dispositivo Android:
    galaxy s
  • Sistema operativo:
    windows 7
inserire content al file audio
« il: 11 Gennaio 2012, 18:57:00 CET »
0
vorrei mettere dei content nel file audio che registro , mi basterebbe la data, il titolo e l'autore..
ho trovato un codice in rete, ma non funziona...avete idea di come posso fare?
codice trovato che non funziona:
Codice (Java): [Seleziona]
   mediaRecorder = new MediaRecorder();
   
   File k=new File(img1,nameFile);
     
    ContentValues values = new ContentValues();  
    values.put(MediaStore.MediaColumns.DATA, k.getAbsolutePath());  
    values.put(MediaStore.MediaColumns.TITLE, "Titolo");  
    values.put(MediaStore.MediaColumns.MIME_TYPE, "audio/3gp");  
    values.put(MediaStore.Audio.Media.ARTIST, "Artista ");  
    values.put(MediaStore.MediaColumns.DATE_ADDED, System.currentTimeMillis());
    values.put(MediaStore.EXTRA_MEDIA_ALBUM, "Album");
    values.put(MediaStore.Audio.Media.IS_RINGTONE, false);  
    values.put(MediaStore.Audio.Media.IS_NOTIFICATION, false);  
    values.put(MediaStore.Audio.Media.IS_ALARM, false);  
    values.put(MediaStore.Audio.Media.IS_MUSIC, true);  
     
    //Insert it into the database  
   this.getContentResolver().insert(MediaStore.Audio.Media.getContentUriForPath(k.getAbsolutePath()), values);  
     


    mediaRecorder.setAudioSource(MediaRecorder.AudioSource.CAMCORDER);
    mediaRecorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP);
         mediaRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.DEFAULT);
    mediaRecorder.setMaxFileSize(10000000); // Set max file size 10M = 10000000
    mediaRecorder.setMaxDuration(120000); // Set max duration 120 sec.=120000
         mediaRecorder.setOutputFile(img);
Se le risposte ti hanno aiutato, metti un ..a te non costa nulla, ma a chi ti ha aiutato fa molto piacere riceverlo!!

Offline Nicola_D

  • Utente storico
  • *****
  • Post: 2479
  • SBAGLIATO!
  • Respect: +323
    • Github
    • Google+
    • nicoladorigatti
    • Mostra profilo
  • Dispositivo Android:
    Nexus 6p, Nexus 4, Nexus S, Nexus 7(2012)
  • Sistema operativo:
    Windows 7
Re:inserire content al file audio
« Risposta #1 il: 11 Gennaio 2012, 23:58:57 CET »
0
non funziona che vuol dire?
IMPORTANTE:NON RISPONDO A PROBLEMI VIA MESSAGGIO PRIVATO
LOGCAT: Non sai cos'è? -> Android Debug Bridge | Android Developers
               Dov'è in Eclipse? -> Window -> Open Prospective -> DDMS e guarda in basso!
[Obbligatorio] Logcat, questo sconosciuto! (Gruppo AndDev.it LOGTFO) - Android Developers Italia

Offline frecciak

  • Utente normale
  • ***
  • Post: 231
  • Respect: +16
    • Mostra profilo
  • Dispositivo Android:
    galaxy s
  • Sistema operativo:
    windows 7
Re:inserire content al file audio
« Risposta #2 il: 12 Gennaio 2012, 01:30:56 CET »
0
non funziona nel senso che non mette i values nel file..
dall'app 'musica' nativa, mi vede solo l'album..se importo il file nel pc invece non si vede nessun tag..ne artista, ne data ne titolo.
Se le risposte ti hanno aiutato, metti un ..a te non costa nulla, ma a chi ti ha aiutato fa molto piacere riceverlo!!

Offline Nicola_D

  • Utente storico
  • *****
  • Post: 2479
  • SBAGLIATO!
  • Respect: +323
    • Github
    • Google+
    • nicoladorigatti
    • Mostra profilo
  • Dispositivo Android:
    Nexus 6p, Nexus 4, Nexus S, Nexus 7(2012)
  • Sistema operativo:
    Windows 7
Re:inserire content al file audio
« Risposta #3 il: 12 Gennaio 2012, 09:56:41 CET »
0
hai provato a modificare i dati DOPO aver scrittp il file?
IMPORTANTE:NON RISPONDO A PROBLEMI VIA MESSAGGIO PRIVATO
LOGCAT: Non sai cos'è? -> Android Debug Bridge | Android Developers
               Dov'è in Eclipse? -> Window -> Open Prospective -> DDMS e guarda in basso!
[Obbligatorio] Logcat, questo sconosciuto! (Gruppo AndDev.it LOGTFO) - Android Developers Italia

Offline frecciak

  • Utente normale
  • ***
  • Post: 231
  • Respect: +16
    • Mostra profilo
  • Dispositivo Android:
    galaxy s
  • Sistema operativo:
    windows 7
Re:inserire content al file audio
« Risposta #4 il: 12 Gennaio 2012, 13:23:14 CET »
0
ho provato a mettere il codice prima della creazione, dopo averla conclusa e anche durante la registrazione (dopo recorder.start() )
ma non li mette... e i logcat in tutte e tre le prove danno lo stesso probema.
cmq nella guida da cui ho preso spunto, i values li inseriva prima..e con i values inseriti come nel primo post,il logcat è questo.... se riuscite a capirci qualcosa:
Codice: [Seleziona]
01-12 13:10:06.695: V/ANDROID_DRM_TEST(90): Create new media recorder client from pid 19278
01-12 13:10:06.699: D/MediaRecorder(19278): doCleanUp
01-12 13:10:06.718: I/Database(586): sqlite returned: error code = 1, msg = near ".": syntax error
01-12 13:10:06.722: E/Database(586): Error inserting bucket_id=2088877253 is_alarm=false is_ringtone=false artist_id=3 is_music=true bucket_display_name=nome album_id=6 title=Titolo android.intent.extra.album=album is_notification=false title_key=QQQUQKQ5QOQQQKQ]QKQOQIQ mime_type=audio/3gp _display_name=Spy_12-gen-2012-13_10_06.3gp date_added=1326370206 _data_hashcode=1021081897 _data=/mnt/sdcard/external_sd/SuperSpyPro/SuperSpyAudio/Spy_12-gen-2012-13_10_06.3gp
01-12 13:10:06.722: E/Database(586): android.database.sqlite.SQLiteException: near ".": syntax error: , while compiling: INSERT INTO audio_meta(bucket_id, is_alarm, is_ringtone, artist_id, is_music, bucket_display_name, album_id, title, android.intent.extra.album, is_notification, title_key, mime_type, _display_name, date_added, _data_hashcode, _data) VALUES(?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?);
01-12 13:10:06.722: E/Database(586):         at android.database.sqlite.SQLiteCompiledSql.native_compile(Native Method)
01-12 13:10:06.722: E/Database(586):         at android.database.sqlite.SQLiteCompiledSql.compile(SQLiteCompiledSql.java:92)
01-12 13:10:06.722: E/Database(586):         at android.database.sqlite.SQLiteCompiledSql.<init>(SQLiteCompiledSql.java:65)
01-12 13:10:06.722: E/Database(586):         at android.database.sqlite.SQLiteProgram.<init>(SQLiteProgram.java:83)
01-12 13:10:06.722: E/Database(586):         at android.database.sqlite.SQLiteStatement.<init>(SQLiteStatement.java:41)
01-12 13:10:06.722: E/Database(586):         at android.database.sqlite.SQLiteDatabase.compileStatement(SQLiteDatabase.java:1149)
01-12 13:10:06.722: E/Database(586):         at android.database.sqlite.SQLiteDatabase.insertWithOnConflict(SQLiteDatabase.java:1569)
01-12 13:10:06.722: E/Database(586):         at android.database.sqlite.SQLiteDatabase.insert(SQLiteDatabase.java:1426)
01-12 13:10:06.722: E/Database(586):         at com.android.providers.media.MediaProvider.insertInternal(MediaProvider.java:3557)
01-12 13:10:06.722: E/Database(586):         at com.android.providers.media.MediaProvider.insert(MediaProvider.java:3298)
01-12 13:10:06.722: E/Database(586):         at android.content.ContentProvider$Transport.insert(ContentProvider.java:198)
01-12 13:10:06.722: E/Database(586):         at android.content.ContentProviderNative.onTransact(ContentProviderNative.java:146)
01-12 13:10:06.722: E/Database(586):         at android.os.Binder.execTransact(Binder.java:320)
01-12 13:10:06.722: E/Database(586):         at dalvik.system.NativeStart.run(Native Method)
01-12 13:10:06.722: E/audio_input(90): unsupported parameter: x-pvmf/media-input-node/cap-config-interface;valtype=key_specific_value
01-12 13:10:06.722: E/audio_input(90): VerifyAndSetParameter failed
01-12 13:10:06.738: E/PVOMXEncNode(90): PVMFOMXEncNode-Audio_AMRNB::DoPrepare(): Got Component OMX.SEC.amrenc handle
01-12 13:10:06.742: V/(19278): mediarecorder preparato
« Ultima modifica: 12 Gennaio 2012, 13:44:42 CET da frecciak »
Se le risposte ti hanno aiutato, metti un ..a te non costa nulla, ma a chi ti ha aiutato fa molto piacere riceverlo!!

Offline Nicola_D

  • Utente storico
  • *****
  • Post: 2479
  • SBAGLIATO!
  • Respect: +323
    • Github
    • Google+
    • nicoladorigatti
    • Mostra profilo
  • Dispositivo Android:
    Nexus 6p, Nexus 4, Nexus S, Nexus 7(2012)
  • Sistema operativo:
    Windows 7
Re:inserire content al file audio
« Risposta #5 il: 12 Gennaio 2012, 19:20:09 CET »
+1
mmm c'è un "." da qualche parte che non va bene:
Citazione
Error inserting bucket_id=2088877253 is_alarm=false is_ringtone=false artist_id=3 is_music=true bucket_display_name=nome album_id=6 title=Titolo android.intent.extra.album=album is_notification=false title_key=QQQUQKQ5QOQQQKQ]QKQOQIQ mime_type=audio/3gp _display_name=Spy_12-gen-2012-13_10_06.3gp date_added=1326370206 _data_hashcode=1021081897 _data=/mnt/sdcard/external_sd/SuperSpyPro/SuperSpyAudio/Spy_12-gen-2012-13_10_06.3gp

android.database.sqlite.SQLiteException: near ".": syntax error: , while compiling: INSERT INTO audio_meta(bucket_id, is_alarm, is_ringtone, artist_id, is_music, bucket_display_name, album_id, title, android.intent.extra.album, is_notification, title_key, mime_type, _display_name, date_added, _data_hashcode, _data) VALUES(?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?);
secondo me il problema è quello... android.intent.extra.album non mi da l'idea di una colonna di un database....

guarda questa classe:
MediaStore.Audio.AudioColumns | Android Developers
« Ultima modifica: 12 Gennaio 2012, 19:22:11 CET da Nicola_D »
IMPORTANTE:NON RISPONDO A PROBLEMI VIA MESSAGGIO PRIVATO
LOGCAT: Non sai cos'è? -> Android Debug Bridge | Android Developers
               Dov'è in Eclipse? -> Window -> Open Prospective -> DDMS e guarda in basso!
[Obbligatorio] Logcat, questo sconosciuto! (Gruppo AndDev.it LOGTFO) - Android Developers Italia

Offline frecciak

  • Utente normale
  • ***
  • Post: 231
  • Respect: +16
    • Mostra profilo
  • Dispositivo Android:
    galaxy s
  • Sistema operativo:
    windows 7
Re:inserire content al file audio
« Risposta #6 il: 12 Gennaio 2012, 23:54:29 CET »
0
acc..hai beccato una parte del problema :D
il problema che mi hai fatto notare era dato da questa riga:
Codice (Java): [Seleziona]
values.put(MediaStore.EXTRA_MEDIA_ALBUMriga compilata in automatico tramite eclipse..forse un bug :D

ora il logcat è pulito, ma i values continuano a non essere inseriti nel file :(
ho riprovato a metterli prima,dopo e durante la creazione..ma nulla..
non riesco proprio a capire il motivo :(
« Ultima modifica: 13 Gennaio 2012, 01:13:17 CET da frecciak »
Se le risposte ti hanno aiutato, metti un ..a te non costa nulla, ma a chi ti ha aiutato fa molto piacere riceverlo!!

Offline Nicola_D

  • Utente storico
  • *****
  • Post: 2479
  • SBAGLIATO!
  • Respect: +323
    • Github
    • Google+
    • nicoladorigatti
    • Mostra profilo
  • Dispositivo Android:
    Nexus 6p, Nexus 4, Nexus S, Nexus 7(2012)
  • Sistema operativo:
    Windows 7
Re:inserire content al file audio
« Risposta #7 il: 13 Gennaio 2012, 01:51:13 CET »
0
acc..hai beccato una parte del problema :D
il problema che mi hai fatto notare era dato da questa riga:
Codice (Java): [Seleziona]
values.put(MediaStore.EXTRA_MEDIA_ALBUMriga compilata in automatico tramite eclipse..forse un bug :D

ora il logcat è pulito, ma i values continuano a non essere inseriti nel file :(
ho riprovato a metterli prima,dopo e durante la creazione..ma nulla..
non riesco proprio a capire il motivo :(
prova a non inserire tutto ma solo artista e titolo per intanto!
IMPORTANTE:NON RISPONDO A PROBLEMI VIA MESSAGGIO PRIVATO
LOGCAT: Non sai cos'è? -> Android Debug Bridge | Android Developers
               Dov'è in Eclipse? -> Window -> Open Prospective -> DDMS e guarda in basso!
[Obbligatorio] Logcat, questo sconosciuto! (Gruppo AndDev.it LOGTFO) - Android Developers Italia

Offline frecciak

  • Utente normale
  • ***
  • Post: 231
  • Respect: +16
    • Mostra profilo
  • Dispositivo Android:
    galaxy s
  • Sistema operativo:
    windows 7
Re:inserire content al file audio
« Risposta #8 il: 13 Gennaio 2012, 03:14:31 CET »
0
avevo gia provato anche cosi..
ma niente da fare.
mi viene il dubbio che sia sbagliato il modo di inserirli, ma non riesco a trovare una soluzione in rete..
secondo te questa stringa è corretta?
Codice (Java): [Seleziona]
this.getContentResolver().insert(MediaStore.Audio.Media.getContentUriForPath(k.getAbsolutePath()), values);  forse devo impostare qualche permesso speciale nel manifest per poter scrivere questi contents al file?
« Ultima modifica: 13 Gennaio 2012, 04:48:16 CET da frecciak »
Se le risposte ti hanno aiutato, metti un ..a te non costa nulla, ma a chi ti ha aiutato fa molto piacere riceverlo!!

Offline Nicola_D

  • Utente storico
  • *****
  • Post: 2479
  • SBAGLIATO!
  • Respect: +323
    • Github
    • Google+
    • nicoladorigatti
    • Mostra profilo
  • Dispositivo Android:
    Nexus 6p, Nexus 4, Nexus S, Nexus 7(2012)
  • Sistema operativo:
    Windows 7
Re:inserire content al file audio
« Risposta #9 il: 13 Gennaio 2012, 08:44:54 CET »
+1
boh, io ho piu il dubbio che il content resolver non trova il file. Purtroppo non ho mai effettuato queste operazioni, ma sono quasi certo che se dovessi fare io questo lavoro lo farei dopo aver effettivamente scritto e chiuso il file...

PS: oppure il contentURI serve solo per leggere... boh...
IMPORTANTE:NON RISPONDO A PROBLEMI VIA MESSAGGIO PRIVATO
LOGCAT: Non sai cos'è? -> Android Debug Bridge | Android Developers
               Dov'è in Eclipse? -> Window -> Open Prospective -> DDMS e guarda in basso!
[Obbligatorio] Logcat, questo sconosciuto! (Gruppo AndDev.it LOGTFO) - Android Developers Italia