Autore Topic: [risolto]determinare lunghezza file audio  (Letto 2866 volte)

Offline luca1202

  • Gambero
  • **
  • Post: 95
    • Mostra profilo
    • http://luca1202.wordpress.com
[risolto]determinare lunghezza file audio
« il: 03 Gennaio 2010, 15:18:58 »
ciao a tutti mi chiamo Luca e mi sono appena iscritto al forum!!
è da un pò che lavoro in gambas e mi trovo ad avere un problema al quale non riesco a trovare una soluzione!!

sto realizzando un player audio e ho un problema con la barra di scorrimento della canzone in quanto non riesco a determinare a priori quanto dovrà essere lunga!!
ho utilizzato uno slider e il maxvalue l'ho metto io ma non va bene!!

a questo punto si prospetta un problema... come faccio a determinare a priori la lunghezza di una canzone? utilizzo la libreria gb.sdl.sound e non c'è una funzione per fare questo!!
qualcuno conosce un metodo o una libreria che mi possa aiutare?
il mio progetto -> SITO

Offline fsurfing

  • Moderatore
  • Senatore Gambero
  • *****
  • Post: 2.482
    • Mostra profilo
Re: determinare lunghezza file audio
« Risposta #1 il: 03 Gennaio 2010, 16:25:16 »
se la canzone è un mp3 con tag v2 ce sritto all' interno, altrimenti dovresti analizzare il file e in base al bitrate e alla dimensione fai una stima della durata.

io in un mio player ho saltato bellamente questo passo non includendo alcuna barra di scorrimento,

kokko mi pare abbia realizzato un bellissimo player in gambas, mi pare si chiami XT7-player prova a fare una ricerca in google, magari lui ha trovato un buon sistema

Offline giulio

  • Maestro Gambero
  • ****
  • Post: 280
    • Mostra profilo
Re: determinare lunghezza file audio
« Risposta #2 il: 03 Gennaio 2010, 17:20:26 »
Se hai mplayer installato, prova l'esempio allegato.

Guarda il codice, è molto semplice da capire.
Apri un file audio e avrai la lunghezza.

Siccome mplayer restituisce la durata in secondi, ho scrtitto
una piccola funzione per convertirlo in hh:mm:ss.cc-

Allego.

Offline Ceskho

  • Amministratore
  • Senatore Gambero
  • *****
  • Post: 3.778
  • Vi Veri Veniversum Vivus Vici
    • Mostra profilo
    • Pagina Personale
Re: determinare lunghezza file audio
« Risposta #3 il: 03 Gennaio 2010, 17:44:27 »
Comunque il problema era già stato affrontato ed era stato lo stesso giulio a risolverlo ad un altro utente..

Offline luca1202

  • Gambero
  • **
  • Post: 95
    • Mostra profilo
    • http://luca1202.wordpress.com
Re: determinare lunghezza file audio
« Risposta #4 il: 03 Gennaio 2010, 19:49:14 »
ottimo vi ringrazio per l'aiuto!!
ora provo!!
il mio progetto -> SITO

Offline luca1202

  • Gambero
  • **
  • Post: 95
    • Mostra profilo
    • http://luca1202.wordpress.com
Re: determinare lunghezza file audio
« Risposta #5 il: 03 Gennaio 2010, 20:14:13 »
dunque il codice del file durata-video è molto semplice, c'è solo un problema!!

non capisco come fa la variabile sDurataVideo a contenere la durata del file considerando che non viene mai usata!!

l'unica parte del codice in cui viene usata è commentata... non capisco proprio!! magari sfugge qualcosa a me!
il mio progetto -> SITO

Offline fsurfing

  • Moderatore
  • Senatore Gambero
  • *****
  • Post: 2.482
    • Mostra profilo
Re: determinare lunghezza file audio
« Risposta #6 il: 03 Gennaio 2010, 20:29:39 »
in effetti la variabile sduratavideo è vuota e mai usata

il comando shell ti scrive il valore della console

per scrivere il valore nella variabile in modo che poi utilizzarlo in altre parti del programma devi modificare così:

Codice: [Seleziona]
Quote.Shell(sFileVideo) & " 2>&1 | grep ID_LENGTH | cut -f2 -d=" WAIT TO sDurataVideo 

Offline luca1202

  • Gambero
  • **
  • Post: 95
    • Mostra profilo
    • http://luca1202.wordpress.com
Re: determinare lunghezza file audio
« Risposta #7 il: 03 Gennaio 2010, 20:43:47 »
ti posso assicurare che l'ho eseguito con quella linea commentata e ha funzionato!! ho provato a scommentarla e mi dà errore...

il mistero s'infittisce  :-o
il mio progetto -> SITO

Offline fsurfing

  • Moderatore
  • Senatore Gambero
  • *****
  • Post: 2.482
    • Mostra profilo
Re: determinare lunghezza file audio
« Risposta #8 il: 03 Gennaio 2010, 20:46:40 »
forse mi sono spiegato male
ti lascio il pacchetto con una modifica

Offline luca1202

  • Gambero
  • **
  • Post: 95
    • Mostra profilo
    • http://luca1202.wordpress.com
Re: determinare lunghezza file audio
« Risposta #9 il: 03 Gennaio 2010, 20:54:44 »
ah ok adesso capisco!!!

grazie mille!!
il mio progetto -> SITO

Offline giulio

  • Maestro Gambero
  • ****
  • Post: 280
    • Mostra profilo
Re: determinare lunghezza file audio
« Risposta #10 il: 04 Gennaio 2010, 00:26:52 »
Scusate, errore mio. Ho modificato al volo un esempio
che riguardava la durata video per rispondere alla richiesta
della durata audio. Grazie fsurfing per la 'pezza'. Ciao.

Offline luca1202

  • Gambero
  • **
  • Post: 95
    • Mostra profilo
    • http://luca1202.wordpress.com
Re: determinare lunghezza file audio
« Risposta #11 il: 04 Gennaio 2010, 10:51:48 »
avrei un ulteriore domanda sempre legata al codice.
ok ora funziona però mi dà il risultato in una stringa e io avrei bisogno di un intero!!

come posso fare? più che altro perchè questa cosa la sò fare in C che conosco bene, in gambas nonostante mi sia scaricato diversi manuali e ho sempre google sott'occhio qualcosa ancora mi sfugge!!

ho pensato di prendere la stringa ottenuta e tramite la funzione "split" farla diventare un array di stringhe cosi da poter convertire elemento per elemento solo che non sò come muovermi all'interno di una stringa (es. in C posso scrivere stringa mentre in gambas non ne vuole sapere, ho provato anche con stringa(i), con qualche vago ricordo di visual basic, ma niente) può andare il mio metodo o c'è un metodo che me lo fa lui istantaneamente tipo java?
il mio progetto -> SITO

Offline giulio

  • Maestro Gambero
  • ****
  • Post: 280
    • Mostra profilo
Re: determinare lunghezza file audio
« Risposta #12 il: 04 Gennaio 2010, 11:14:16 »
intero = Val(stringa)

Offline luca1202

  • Gambero
  • **
  • Post: 95
    • Mostra profilo
    • http://luca1202.wordpress.com
Re: determinare lunghezza file audio
« Risposta #13 il: 04 Gennaio 2010, 11:21:55 »
Val(stringa) mi restituisce null e in stringa sono sicuro che c'è qualcosa

ho capito dove sta il problema... il numero che ritorna dalla funzione che mi hanno postato qua ritorna un numero tipo 214.5 e questo non me lo riesce a convertire (suppongo per via del .) devo risolvere questo problema!
il mio progetto -> SITO

Offline fsurfing

  • Moderatore
  • Senatore Gambero
  • *****
  • Post: 2.482
    • Mostra profilo
Re: determinare lunghezza file audio
« Risposta #14 il: 04 Gennaio 2010, 12:14:39 »
se il problema è quello puoi fare cosi:

Codice: [Seleziona]


intero=val(replace(stringa,".",","))



ma forse invece di un integer dovresti usare un float così tieni anche i decimali