Gå til innhold

Hvordan spille .ogg filer i c++?


Anbefalte innlegg

Videoannonse
Annonse

@aC

Sorry, men hva skal jeg med fmod? :p

 

@GeirGrusom

Jeg gikk på Project->Build options->Search directories->Compiler.

Så la jeg til C:\Program Files\CodeBlocks\include.

 

Dette er koden:

#include < al.h >
#include < alut.h >
#include < vorbisfile.h >

 

Og får denne erroren:

D:\C++\Ogg\ogg.c|2| al.h : No such file or directory|

D:\C++\Ogg\ogg.c|3| alut.h : No such file or directory|

D:\C++\Ogg\ogg.c|4| vorbisfile.h : No such file or directory|

Lenke til kommentar
Er det mulig å spille .ogg filer og hvordan gjør man det?

 

Ja og fmod, libogg, lage engen dekoder / lage eget api

 

Enig det å ha med hele fmod er vel strengt tatt litt å ta i hvis du bare skal spille av en lyd. Det er x86 evt x64 vi snakker ikke sant? Ikke noe PIC eller AVR du skal putte dette på?

Lenke til kommentar
Sorry, men nå er jeg ikke hlet med her.

Trenger jeg alle .lib filene for .h filene i linker settings?

 

Du trenger følgende lib:

ogg.lib vorbis.lib vorbisfile.lib vorbisenc.lib OpenAL32.lib (den heter det samme for x64 også :) )

og følgende headere:

#include < AL/al.h >
#include < AL/alut.h >
#include < vorbis/vorbisfile.h >

 

Alt dette står på siden jeg linket til btw

Lenke til kommentar
Okay, nå har jeg lagt til openal32.lib i include mappa og lagt mappa til i Linker også.

Menn fortsatt for jeg denne feilen:

D:\C++\Ogg\ogg.c|3| alut.h : No such file or directory|

Mulig code:blocks bruker andre navn enn vc, men jeg vil tro at include mappa er for .h filer og .lib skal i linker.

Litt rar feilmelding også, men det kan være code:blocks.

Hvorfor du prøver å ha med ogg.c vet jeg ikke, for det skal du ikke ha.

 

Og lib filene til ogg vorbis følger ikke med i de zip filene jeg lasta ned.

Det følger ikke med .lib filer siden det er tenkt at du skal fikse det selv ved å kompilere filene.

Det finnes så utrolig mange måter å kompilere på så det er bedre å la folk gjøre det selv.

 

Hvis du har store problemer så kan du legge kildekoden direkte inn i prosjektet.

Lenke til kommentar

Men du burde få en liten forståelse av hva lib og header filer er til før du tar innpå deg at du skal spille av Ogg Vorbis, dette du har problemer med nå skal være temmelig grunnleggende, og du burde vite fra før hvordan du løser dem.

 

Jeg bruker code::blocks på linux maskinen min, i mangel på noe bedre alternativ der. I linux er det normal ikke nødvendig å endre lib mappe eller include mappe, fordi det er et fellesområde slike ting blir lagt i her

 

Hvilken compiler bruker du btw? cygwin med gcc?

Lenke til kommentar
  • 2 uker senere...

Siden han ikke kan grunnleggende ting som hvordan sette opp en skikkelig utviklingsmiljø med riktig library og include paths så regner jeg med han bare skal ha noe kode som kjapt fungerer uten noe mer mas.

 

Derfor anbefaler jeg BASS Audio library (så fmod ble nevnt, men BASS er litt enklere i bruk).

 

Last ned BASS fra http://www.un4seen.com/bass.html

Pakk ut til C:\BASS

Legg til C:\BASS\c i INCLUDE path

Legg til C:\BASS\c i LIBRARY path

 

Legg til følgende kode i kildekodefilen du vil spille av OGG Vorbis:

#include "bass.h"

 

Legg til følgende kode der du trenger å sette igang avspilling av lydfil:

HSTREAM stream=NULL; // Referense til lydstreamen
str = BASS_StreamCreateFile(FALSE,filnavn,0,0,0);
BASS_ChannelPlay(stream);

 

BASS_ChannelStop(stream); //Stopper avspilling
BASS_StreamFree(stream); // Frigjør ressurser bundet til lydstreamen.

 

I din main eller WinMain funksjon eller annet sted der programmet ditt initialiserer seg eller starter opp så legg følgende kode:

	// check the correct BASS was loaded
if (HIWORD(BASS_GetVersion())!=BASSVERSION) {
	MessageBox(0,"An incorrect version of BASS.DLL was loaded",0,MB_ICONERROR);
	return 0;
}

if (!BASS_Init(-1,44100,0,win,NULL)) {
char mes[200];
sprintf(mes,"Can't initialize device\n(error code: %d)",BASS_ErrorGetCode());
MessageBox(win,mes,0,0);
Error();
}

 

Det følger med mange kodeeksempler i C:\bass\c mappa som du kan kikke på. Merk at prosjektfilene er laget for Visual C++ 6.0 (veldig gammel versjon som mange tviholder på) så de må konverteres og du kan få feilmeldinger.

 

Ellers anbefaler jeg Microsoft Visual C++ Express Edition som er gratis og gir et bra utviklingmiljø for begynnende programmerer på Windows platformen.

MinGW, MSYS og Cygwin er litt mer komplisert å sette seg inn i samt at du må sette opp veldig mange ting selv. Med Visual C++ Express Edition så er alt ferdig og du kan lett endre både INCLUDE og LIBRARY path via Preferences.

Anbefaler også å lese denne som gir deg en innføring i hvordan sette opp WTL med Visual C++ Express Edition. Du vil da kunne ta ibruk det du har lært her og bruke det for BASS og alle andre libraries (WTL = Windows Template Library): http://www.codeproject.com/KB/wtl/WTLExpress.aspx

Endret av saivert
Lenke til kommentar

Du kan ikke spille av .ogg filer med sndPlaySound, den spiller bare .wav filer.

Husker jeg synes det var så gøy med denne funksjonen i VB5.

 

Det er egentlig veldig sjeldent en trenger å spille av lyder i programmene, det er derfor heller ingen enkel måte som PlaySound for å spille av .ogg eller .mp3 filer.

 

Lyd er egentlig for mer interesserte, da vanlige enterprise progammer aldri eller sjeldent bruker det.

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å
×
×
  • Opprett ny...