Gå til innhold

Lagre lyd i eget filformat... går det? (VB.NET 05)


Anbefalte innlegg

Hei!!

 

Jeg holder på å lage et glosepuggeprogram.

I dette programmet ønsker jeg å gi muligheten til å lagre lyd filer.

Altså du kan lese inn gloser og høre på de som en del av øvningene.

 

Greit nok, vet ikke helt enda hvordan jeg skal gjøre det. Men lurer litt på om jeg kan lage et eget filformat hvor selve "lyden" er inkludert i glosesett filen. F.eks:

 

linje1: navn|unikhashverdi|dato

linje2: glose1|glose2|lydfil1|lydfil2

 

Gjør det utrolig mye enklere viss jeg kan inkludere "lyden" i samme fil som resten av glosesettet. Viss ikke må jeg bruke mye tid på å lage et system som holder orden på alle lydfilene og det vil ta tiiiiid.

Hmm sånn når jeg tenker meg om så er jo lydfilen "data". Altså binary bla bla bla.. . så det burde jo la seg gjøre.

 

Noen som har noen tanker angående dette?

 

Svein. :)

Endret av chills
Lenke til kommentar
Videoannonse
Annonse

Joda, det er mulig, men du må alikevel holde styr på hvor stor lyd-filene inni hovedfila er, start-offset, lese de inn i et minneområde og rendere de gjennom en eller annen form for codec.

Vil egentlig anbefale å ikke gjøre det, og heller kanskje bare ha en XML-fil (siden det jo er så i vinden), der du bare har filnavnet til lydfilen som tilhører glosen lagret. Trenger ikke nødvendigvis bli så komplisert :)

Lenke til kommentar

Ja, jeg skal se på det i løpet av de neste dagene.

Først må jeg ha noe å recorde med... directX kanskje. Vet ikke ennå.

Også en måte å lagre dette, men igjen.

En string (viss jeg nå vil bruke det til å holde "gloselydfilen" i minne) er den stor nok?

Har lite peiling på lyd altså, ingen erfaring med programmering innen det. :(

Lenke til kommentar

Du vil antakeligvis bruke et Byte-array for å holde lyd-dataene, og sende den til f.eks PlaySound-funksjonen i winmm.dll, eller bruke DirectXs lydfunksjonalitet.

Mulighetene er mange, men det er viktig å tenke igjennom hvordan ting skal gjøres før man setter seg ned og bare koder ivei.

Lenke til kommentar
Jepp du har så rett så rett.

(Du har ingen aning hvor mange uferdig proskjekt jeg har i prosject mappa mi) :blush:

 

Så tenkte jeg skulle gjøre litt research først.

 

:)

5801158[/snapback]

MCI funker bra den, enkel og grei, ikke noe api-programmering etc., bruker den sjøl til opptak av korte lyd-mail. Sett gjerne MMControl1.DeviceType = "WaveAudio" for å si at lydfilene skal være wav-filer.

Lenke til kommentar
Jepp du har så rett så rett.

(Du har ingen aning hvor mange uferdig proskjekt jeg har i prosject mappa mi) :blush:

 

Så tenkte jeg skulle gjøre litt research først.

 

:)

5801158[/snapback]

MCI funker bra den, enkel og grei, ikke noe api-programmering etc., bruker den sjøl til opptak av korte lyd-mail. Sett gjerne MMControl1.DeviceType = "WaveAudio" for å si at lydfilene skal være wav-filer.

5832362[/snapback]

 

Du skulle vel ikke ha den koden liggende? :innocent:

Lenke til kommentar

Det funka det... dåh vet jeg ka jeg skal bruke til å spille av :)

 

Men igjen... trenger hjelp til å ta opp?!

 

Vil jo klare det til slutt, men viss noen har noe som gjør det lettere for meg så er jeg evig takknemmelig.

:w00t:

 

Gjorde vel egentlig det aldri helt klart, at jeg vil ta opp data fra mic og spillet av pluss lagre i min egen fil :hmm:

Endret av chills
Lenke til kommentar

Vb 6 sin mci kontroll kan lett inkluderes i VB 2005 Express sin Toolbox. I VB 2005 Express, klikk Project, Add references, Com, trekk ned til du finner mci kontrollen, huk av og klikk ok, og du har den. ;)

 

Edit: Mci-kontrollen heter i system32 mappa mci32.ocx. Har du den ikke, finner du den ved å google med mci32.ocx. Et nedlastingssted er mellom annet:

 

http://www.reenigne.org/computer/librepos/index.html

 

Her velger du mci32.ocx for vb 6, og legg den først i en testmappe. Kjør først antivirus på den for sikkerhetsskyld (man bør ikke stole 100% på det man laster ned fra tredjeparter). Legg den så i system32 mappa. Registrer den så med regsvr32. Etter dette kan du inkludere kontrollen i vb 2005 express.

Endret av backup
Lenke til kommentar

Dette er jo egentlig ganske så enkelt. Legg til en MMControl på en form. Lag f.eks. en knapp for "Record" og en for "Stop". Legg til følgende kode:

 

For "Record":

AxMMControl1.FileName = "c:\\test.wav"
AxMMControl1.Wait = True
AxMMControl1.Notify = False
AxMMControl1.Command = "open"
AxMMControl1.Command = "record"

 

For "Stop":

AxMMControl1.Command = "stop"
AxMMControl1.Command = "save"
AxMMControl1.Command = "close"

 

Øyvind.

Lenke til kommentar

Skjønner ikke helt hvorfor du skal putte binærdata inn i ditt filformat. Jeg ville heller brukt xml med url-en til selve lydfilen. Dersom du insisterer på å putte selve lyden inn kan du jo hente den ut igjen og så skrive lyddataene til en temporær wav-fil som du spiller på vanlig måte.

 

Øyvind

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...