nightwolf (Normal User)
Pro
Messaggi: 119
Iscritto: 14/09/2010
|
buon giorno a tutti, ho creato un player che legge i file mp3, avrei bisogno di sapere
come faccio a far si che in una label esce fuori in nome del brano che sta suonando e in un altra label la durata complessiva della canzone questo perche ho gia una label
che mi indica l avanzamento della canzone.
grazie a tutti.
|
|
walker93 (Member)
Expert
Messaggi: 460
Iscritto: 31/01/2010
|
Dipende da come riproduci l'audio...
Se usi le Microsoft DirectX, per riprodurre il file hai dovuto dichiarare un oggetto "Audio" e tutte le informazioni che ti interessano le puoi trovare all'interno di questa classe.
se usi un altro metodo, specificalo...
|
|
nightwolf (Normal User)
Pro
Messaggi: 119
Iscritto: 14/09/2010
|
sono riuscito a far si che nella label risulti il nome della canzone che sta suonando, ma come faccio a far risultare la durata complessiva di una canzone in un altra label?
|
|
Question (Normal User)
Rookie
Messaggi: 58
Iscritto: 14/12/2010
|
ma sì dai, ignoriamo le risposte ai topic
|
|
nightwolf (Normal User)
Pro
Messaggi: 119
Iscritto: 14/09/2010
|
per riprodurre l'audio ho usato il seguente cod:
Private Sub play()
If AxWindowsMediaPlayer1.playState = WMPLib.WMPPlayState.wmppsPaused Then
AxWindowsMediaPlayer1.Ctlcontrols.play()
Else
AxWindowsMediaPlayer1.URL = ListBox1.SelectedItem
End If
questo è ciò che uso per far suonare una canzone ma come faccio a far si che in una label risulti la durata totole della canzone es.
- Lady Gaga - Just Dance durata 00:04:30
grazie mille per l'aiuto
|
|
walker93 (Member)
Expert
Messaggi: 460
Iscritto: 31/01/2010
|
é bastato giocare per 2 minuti con l'intellisense...
Ecco ciò che ti serve...
Codice sorgente - presumibilmente C# / VB.NET |
AxWindowsMediaPlayer1.currentMedia.durationString 'durata totale formato stringa
AxWindowsMediaPlayer1.currentMedia.duration 'durata totale formato double
AxWindowsMediaPlayer1.Ctlcontrols.currentPositionString 'posizione corrente stringa
AxWindowsMediaPlayer1.Ctlcontrols.currentPosition 'posizione corrente double
|
|
|
nightwolf (Normal User)
Pro
Messaggi: 119
Iscritto: 14/09/2010
|
ho provato tutte e 4 le soluzioni mettendole sul pulsante play ma non funziona niente anzi la prima soluzione mi compare solo 00:00
come posso fare?
ho provato a mettere la prima soluzione sul timer dove faccio avanzare la canzone e cioè la tua 3 soluzione e li mi da l'errore "Riferimento a un oggetto non impostato su un'istanza di oggetto" che vuol dire?
|
|
walker93 (Member)
Expert
Messaggi: 460
Iscritto: 31/01/2010
|
non metterle sul pulsante play...
Quella che veramente interessa a te è la prima che restituisce un valore stringa nel formato mm:ss, il mio consiglio e applicarla ogni volta che cambi canzone (lasciando il tempo al controllo di caricare i relativi dati della canzone) oppure sul tick di un timer dovrebbe andare...
Codice sorgente - presumibilmente VB.NET |
Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick Me.Text = AxWindowsMediaPlayer1.Ctlcontrols.currentPositionString Label1.Text = AxWindowsMediaPlayer1.currentMedia.durationString End Sub Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load AxWindowsMediaPlayer1.URL = "E:\Documenti\Musica\Apocalyptica - Death Zone.wma" End Sub
|
nell'immagine si vede il risultato...
|
|
nightwolf (Normal User)
Pro
Messaggi: 119
Iscritto: 14/09/2010
|
ho fatto come dici tu ma mi da sempre l'errore "Riferimento a un oggetto non impostato su un'istanza di oggetto", ho creato un form per fare una prova e tutto funziona, ma non riesco a capire dove posso modificare il mio progetto per far si che tutto funzioni.
|
|