Home Page
Articoli
Tips & Tricks
News
Forum
Archivio Forum
Blogs
Sondaggi
Rss
Video
Utenti
Chi Siamo
Contattaci
Username:
Password:
Login
Registrati ora!
Recupera Password
Home Page
Stanze Forum
App. WinForms / WPF .NET
File midi e risorse
giovedì 14 luglio 2005 - 03.01
Elenco Threads
Stanze Forum
Aggiungi ai Preferiti
Cerca nel forum
Gossip
Profilo
| Newbie
4
messaggi | Data Invio:
gio 14 lug 2005 - 03:01
Salve,
ho inserito in un form il seguente codice per riprodurre un file midi:
Imports Microsoft.DirectX
Imports Microsoft.DirectX.AudioVideoPlayback
Dim audio1 As Audio
audio1 = New Audio(Application.StartupPath + "\song.mid")
audio1.Play()
Vorrei inserire il file midi all'interno dell'eseguibile in modo tale da non tenerlo nella dir del programma, come posso fare? Come richiamo poi dalle risorse il file?
Premetto che l'unica volta che ho utilizzato le risorse è stato per inserire il file .manifest all'interno del exe per ottenere i controlli stile XP, in pratica selezionavo l'exe già compilato ed inserivo il file .manifest al suo interno.
In questo caso però stavo provando a creare un file di risorse nel seguente modo:
File -> Nuovo -> File -> Modello di risorsa
Tasto destro -> Importa (scelgo il file midi)
...
Ottengo così un file .rct
Stranamente quando compilo la dimensione dell'exe è identica a prima che creassi il file di risorse, è come se non avesse inserito all'interno dell'eseguibile il file midi nonostante il file .rtc sia presente in "esplora soluzioni" prima della compilazione, cosa sbaglio?
Cosa cambia tra "Modello di risorsa" e "File di risorse assembly"?
Scusate le numerose domande, grazie in anticipo!!
Brainkiller
Profilo
| Guru
7.999
messaggi | Data Invio:
ven 15 lug 2005 - 14:30
Ciao,
prova a leggere questo Thread:
http://www.dotnethell.it/forum/messages.aspx?ThreadID=3972
ciao
David De Giacomi
Microsoft MVP
http://blogs.dotnethell.it/david/
Gossip
Profilo
| Newbie
4
messaggi | Data Invio:
ven 15 lug 2005 - 15:53
Ti ringrazio moltissimo di avermi risposto, non ci speravo +.
Sono riuscito a farlo funzionare con un immagine:
Dim thisExe As System.Reflection.Assembly
thisExe = System.Reflection.Assembly.GetExecutingAssembly()
Dim file As System.IO.Stream = _
thisExe.GetManifestResourceStream("AssemblyName.ImageFile.jpg")
Me.PictureBox1.Image = Image.FromStream(file)
Non so cosa mettere al posto di "Image.FromStream(file)" per un suono in modo da utilizzarlo nel codice postato prima
Grazie ancora
Gossip
Profilo
| Newbie
4
messaggi | Data Invio:
sab 16 lug 2005 - 21:13
Ho risolto in questo modo:
- Ho aggiungo il file midi da "Esplora soluzioni" al progetto
- Ho impostato la proprietà "Operazione di generazione" del file midi in "Risorsa incorporata"
- Ho scritto il seguente codice:
Dim thisExe As System.Reflection.Assembly
Dim file As System.IO.Stream
thisExe = System.Reflection.Assembly.GetExecutingAssembly
file = thisExe.GetManifestResourceStream("Suoni.song.mid")
'crea un array di byte dallo stream
Dim bytearray As Byte()
ReDim bytearray(CInt(file.Length) - 1)
file.Read(bytearray, 0, CInt(file.Length))
file.Close()
'scrive l'array di byte in un file
Dim FileLibero As Integer = FreeFile()
FileOpen(FileLibero, Application.StartupPath & "\song.mid", OpenMode.Binary, OpenAccess.Write)
FilePut(FileLibero, bytearray)
FileClose(FileLibero)
'Suona il file creato
Dim audio1 As Audio
audio1 = New Audio(Application.StartupPath + "\song.mid")
audio1.Play()
E'possibile non creare il file midi nella dir del programma ma farlo suonare direttamente dall'array di byte creato?
Naturalmente se scrivo così non funziona:
audio1 = New Audio(bytearray)
audio1.Play()
Torna su
Stanze Forum
Elenco Threads
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?
Dopo esserti registrato potrai chiedere
aiuto sul nostro
Forum
oppure aiutare gli altri
Consulta le
Stanze
disponibili.
Registrati ora !