Visualizzazione dei risultati da 1 a 2 su 2
  1. #1
    Utente di HTML.it
    Registrato dal
    Mar 2010
    Messaggi
    34

    [tag mp3] salvataggio tag modificati

    Salve!



    Sto incontrando diversi problemi col salvataggio dei tag mp3 nel rispettivo file.
    Quello che faccio e':
    Apro il file mp3, leggo i tag, li metto in determinate variabili che poi stampo a video in un comodo JTextField editabile nel mio JDialog.
    Il pulsante Salva alla fine di questo permette di salvare i campi col testo (modificato o no) nei tag.

    Il problema e' il seguente: alla prima volta che modifico i tag va tutto bene, la modifica avviene correttamente.
    Se tento di modificare nuovamente lo stesso tag, ottengo una NullPointerException, why?

    Posto qualche pezzo del codice e parte del log dell'errore..

    Metodo di salvataggio tag su file:
    codice:
     
    public void saveTags() {
            //inizio salvataggio tag
            File mia_song = new File(song.getPath());
    
            try {
    			 MP3File f = (MP3File)AudioFileIO.read(mia_song); 
            
    			Tag tag = f.getTag();
    			System.out.println("artista: " + song.getArtista() + " album: " + song.getAlbum() + " titolo: " + song.getTitolo() + " anno: " + song.getAnno() + " traccia num: " + song.getTraccia() + " disco num: " + song.getDisco() + " path: " + song.getPath() + " ");
    
    			tag.setField(FieldKey.TITLE,song.getTitolo());
    			tag.setField(FieldKey.ARTIST,song.getArtista());
    			tag.setField(FieldKey.ALBUM,song.getAlbum());
    			tag.setField(FieldKey.GENRE,song.getGenere());
    			tag.setField(FieldKey.YEAR,song.getAnno());
    			tag.setField(FieldKey.TRACK,song.getTraccia());
    			tag.setField(FieldKey.DISC_NO,song.getDisco());
    			f.commit();
    			 
    			 
            }
            catch(Exception exc) {
            	System.out.println(exc);
            }
            //fine salvataggio tag
        	
        }

    codice:
     
     public boolean editSong(Song song) {
        	
            int num = song.getNumero();
            String num_canzone = String.valueOf(num);
    
            num_canz_tf.setText(num_canzone);
            .
            .inizializzo tutti i text field ai valori correnti dei tag, salvati precedentemente nelle var dell'oggetto song
            .
            path_tf.setText(song.getPath());
    
            setVisible(true);
    
    
                song.setTitolo(titolo_tf.getText());
                .
                .setto tutti i campi di song prendendo i vari textfield
                .
                song.setDisco(disco_n_tf.getText());
                
                System.out.println("siamo dopo l'aggiornamento, vediam che succede");
    			System.out.println(printf di tutti i campi della song per vedere se sono correttamente aggiornati);
    			System.out.println("Salvo i tag..");
    			saveTags();
    			System.out.println("Tag salvati, spero..XD");
            return status;
        }
    parte di log con l'errore:
    codice:
    Salvo i tag..
    .vari messaggi di info sul lavoro sui tag
    .
    .
    .
    7-mar-2010 12.42.22 org.jaudiotagger.tag.id3.AbstractID3v2Frame <init>
    INFO: Creating empty frame of typeTPOS
    7-mar-2010 12.42.22 org.jaudiotagger.tag.id3.AbstractID3v2Frame <init>
    INFO: Created empty frame of typeTPOS
    artista: Chiasm album: Reform titolo: Soulprint anno: 2008 traccia num: 2 disco num: 4 path: /home/isendel/canzoniprova/02_chiasm-soulprint.mp3 
    java.lang.NullPointerException
    Tag salvati, spero..XD
    cio' di cui non riesco a capacitarmi e' come mai la prima volta che su questa canzone ho lanciato il programma e modificato il tag ha funzionato tutto, le successive no invece. (l'errore e' solo in scrittura, la lettura funziona perfettamente, dando ovviamente dalla seconda volta in poi il tag modificato da me..)

    Ringrazio in anticipo per l'aiuto..

  2. #2
    Utente di HTML.it
    Registrato dal
    Mar 2010
    Messaggi
    34
    Aggiungo parte finale del log della console di quando invece il salvataggio riesce (cioe' alla prima volta sul dato file)

    codice:
     
    .
    .
    .
    INFO: Saving ID3v11 tag to file
    7-mar-2010 16.07.12 org.jaudiotagger.tag.id3.AbstractID3v1Tag delete
    INFO: Deleting ID3v1 from file if exists
    7-mar-2010 16.07.12 org.jaudiotagger.tag.id3.AbstractID3v1Tag delete
    INFO: Deleted ID3v1 tag 
    Tag salvati, spero..XD
    7-mar-2010 16.07.12 org.jaudiotagger.tag.id3.ID3v11Tag write
    INFO: Saved ID3v11 tag to file
    Come si vede non ci sono errori e quindi i tag sono salvati sul file, come testimoniato dall'ultima INFO: Saved ID3v11 tag to file

    Puo' essere che salva i tag in ID3v11 e deleta quelli in versione v1 e quindi crei un problema?

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.