Nanashi-soft

Nanashi-soft¤Î³èư¾õ¶·¤È¤«»¨Ã̤Ǥ¹ ºÇ¶á¤ÏUnity¤Ë¥Ï¥Þ¤Ã¤Æ¤¤¤Þ¤¹

Windows¤Çgcc¡ÜSDL

gcc¡ÜSDL¤Ç ogg¤òºÆÀ¸¤·¤¿¤¤¡Ê£³

¡Ä¡Ä¤Ç¡¤¤³¤Î¤Þ¤Þ¤À¤È¤É¤¦¤ß¤Æ¤â¡¤Æ±»þ¤ËÌĤ餹¤³¤È¤¬¤Ç¤­¤Þ¤»¤ó
¥Á¥ã¥ó¥Í¥ë¤ò»ØÄꤹ¤ëºÆÀ¸ÊýË¡¤¬¤¢¤Ã¤¿¤Î¤Ç¡¤»î¤·¤Æ¤ß¤¿

#include <SDL.h>
#include <SDL_mixer.h>    //SDL_mixer¥Ø¥Ã¥À

int main(int args,char *argp[]){
    SDL_Surface *screen;
    SDL_Event event;

    //½é´ü²½
    if(SDL_Init(SDL_INIT_VIDEO|SDL_INIT_AUDIO) < 0){
        return -1;
    }
    screen=SDL_SetVideoMode(854,480,32,SDL_HWSURFACE);
    if(screen == NULL){
        SDL_Quit();
        return -1;
    }

    //SDL_mixer:¥é¥¤¥Ö¥é¥ê³«»Ï
    Mix_OpenAudio(44100, MIX_DEFAULT_FORMAT, 2, 4096);

    //SDL_mixer:ÊÑ¿ôÄêµÁ
    Mix_Chunk *music;
    Mix_Chunk *music2;
    int channel;
    int channel2;

    //SDL_mixer:¥µ¥¦¥ó¥É¥Õ¥¡¥¤¥ë¤Î¥í¡¼¥É
    music = Mix_LoadWAV("test.ogg");
    music2 = Mix_LoadWAV("test2.ogg");

    //SDL_mixer:ºÆÀ¸
    channel = Mix_PlayChannel(-1, music, -1);
    channel = Mix_PlayChannel(-1, music2, -1);

    //¥á¥¤¥ó¥ë¡¼¥×
    int done = 0;
    while(done == 0){
        if(SDL_PollEvent(&event)){
            //ºÇ½é¤Ë¾ï¤Ë¥·¥¹¥Æ¥à½ªÎ»µ­½Ò¤ò¤¹¤ë
            if(event.type == SDL_QUIT){
                done= 1;
            }
        }

        SDL_Delay(16);    //CPU¤ò°ìö³«Êü
    }

    //SDL_mixer:Ää»ß
    Mix_HaltChannel(channel);
    Mix_HaltChannel(channel2);

    //SDL_mixer:¥µ¥¦¥ó¥É³«Êü
    Mix_FreeChunk(music);
    Mix_FreeChunk(music2);

    //SDL_mixer:¥é¥¤¥Ö¥é¥ê½ªÎ»
    Mix_CloseAudio();

    //½ªÎ»½èÍý
    SDL_Quit();
}

Ʊ»þ¤ËÌĤê¤Þ¤·¤¿
´Ø¿ô̾¤¬ LoadWAV¤Ê¤Î¤Ç¾éÃ̤Ǥä¤Ã¤Æ¤ß¤¿¤À¤±¤À¤Ã¤¿¤Î¤Ç¤¹¤¬(*'-')

gcc¡ÜSDL¤Ç ogg¤òºÆÀ¸¤·¤¿¤¤¡Ê£²

ñ½ã¤ËºÆÀ¸¥½¡¼¥¹¤ò½ñ¤¤¤Æ¤ß¤ë
SDL_mixer¤Î¤¢¤ë¥³¥á¥ó¥ÈÉôʬ¤¬ÀìÍѵ­½Ò¤Ç¤¹

#include <SDL.h>
#include <SDL_mixer.h>    //SDL_mixer¥Ø¥Ã¥À

int main(int args,char *argp[]){
    SDL_Surface *screen;
    SDL_Event event;

    //½é´ü²½
    if(SDL_Init(SDL_INIT_VIDEO|SDL_INIT_AUDIO) < 0){
        return -1;
    }
    screen=SDL_SetVideoMode(854,480,32,SDL_HWSURFACE);
    if(screen == NULL){
        SDL_Quit();
        return -1;
    }

    //SDL_mixer:¥é¥¤¥Ö¥é¥ê³«»Ï
    Mix_OpenAudio(44100, MIX_DEFAULT_FORMAT, 2, 4096);

    //SDL_mixer:ÊÑ¿ôÄêµÁ
    Mix_Music *music;

    //SDL_mixer:¥µ¥¦¥ó¥É¥Õ¥¡¥¤¥ë¤Î¥í¡¼¥É
    music = Mix_LoadMUS("test.ogg");

    //SDL_mixer:ºÆÀ¸
    Mix_PlayMusic(music, 0);

    //¥á¥¤¥ó¥ë¡¼¥×
    int done = 0;
    while(done == 0){
        if(SDL_PollEvent(&event)){
            //ºÇ½é¤Ë¾ï¤Ë¥·¥¹¥Æ¥à½ªÎ»µ­½Ò¤ò¤¹¤ë
            if(event.type == SDL_QUIT){
                done= 1;
            }
        }

        SDL_Delay(16);    //CPU¤ò°ìö³«Êü
    }

    //SDL_mixer:Ää»ß
    Mix_HaltMusic();

    //SDL_mixer:¥µ¥¦¥ó¥É³«Êü
    Mix_FreeMusic(music);

    //SDL_mixer:¥é¥¤¥Ö¥é¥ê½ªÎ»
    Mix_CloseAudio();

    //½ªÎ»½èÍý
    SDL_Quit();
}

¤³¤ì¤ò testogg2.c¤ÇÊݸ¤·¤Æ¥³¥ó¥Ñ¥¤¥ë¤·¤Þ¤¹
$ gcc -O0 -o testogg2 testogg2.c `sdl-config --cflags --libs` -DSDL -lSDL_mixer

¤½¤·¤Æ¡¤¼Â¹Ô¤¹¤ë¤È¥Õ¥ê¡¼¥º¤·¤Þ¤·¤¿¡Ê¤¡
»î¹Ôºø¸í¤ÎËö¡¤ÉáÄ̤˥¨¥¯¥¹¥×¥í¡¼¥é¡¼¤«¤éµ¯Æ°¤¹¤ì¤Ðư¤¯¤³¤È¤¬¤ï¤«¤ê¤Þ¤·¤¿
¤Þ¤¡¡¤Windows¤Ç¤Ï¤½¤¦¤¤¤¦¼Â¹Ô¤·¤«¤·¤Þ¤»¤ó¤«¤é¡¤¤³¤ì¤Ç¤¤¤¤¤À¤í¤¦¤È(*'-')

exe¤ò¼Â¹Ô¤¹¤ë¤Ë¤Ï¡¤¥é¥ó¥¿¥¤¥à¥é¥¤¥Ö¥é¥ê¤¬É¬ÍפǤ¹

http://www.libsdl.org/projects/SDL_mixer/
Binary:
Win32
SDL_mixer-1.2.11-win32.zip¤ò¥À¥¦¥ó¥í¡¼¥É

ogg¤ÎºÆÀ¸¤ËɬÍפʥե¡¥¤¥ë¤Ï¡¤°Ê²¼¤Î¥Õ¥¡¥¤¥ë¤¬É¬ÍפǤ·¤¿
SDL_mixer.dll
libogg-0.dll
libvorbis-0.dll
libvorbisfile-3.dll

¤³¤ì¤é¤È¡¤¥³¥ó¥Ñ¥¤¥ë»þ¤ÈƱ¤¸ SDL¥Ð¡¼¥¸¥ç¥ó¤Î SDL.dll¤ò¡¤¤Þ¤È¤á¤Æ exe¤ÈƱ°ì¥Õ¥©¥ë¥À¤ËÊü¤ê¹þ¤à¤Èµ¯Æ°¤·¤Þ¤¹
¤Þ¤¿¡¤¤³¤ì¤é¤Î¥é¥¤¥Ö¥é¥ê¤Ï LGPL¥é¥¤¥»¥ó¥¹¤Ç¤¹¤Î¤Ç¡¤¤³¤Î¤Þ¤ÞƱº­¤·¤ÆÇÛÉÛ²Äǽ¤Ç¤¹

gcc¡ÜSDL¤Ç ogg¤òºÆÀ¸¤·¤¿¤¤¡Ê£±

°ìÉô¤Î¤ß¤Ê¤µ¤ó¤ªÂÔ¤Á¤«¤Í¤Î¡¤¥Þ¥¤¥Ê¡¼¥×¥í¥°¥é¥ß¥ó¥°¤Î¥¿¡¼¥ó¤Ç¤¹
¥Ë¥³¥Ë¥³Æ°²è¤À¤È¡Ø²æ¡¹¤Î¶È³¦¤Ç¤Ï¤´Ë«Èþ¤Ç¤¹¡Ù¥¿¥°¤¬ÉÕ¤­¤Þ¤¹¡Ê¤©

¸½¾õ¡¤¤¦¤Á¤Î¥µ¥¤¥È¤ÎÀâÌÀ¤Ç¤Ï wav¥Õ¥¡¥¤¥ë¤·¤«ºÆÀ¸¤Ç¤­¤Þ¤»¤ó
wav¥Õ¥¡¥¤¥ë¤ÏÍÆÎ̤¬Â礭¤¯¡¤¤¢¤Þ¤ê°µ½Ì¤â¤«¤«¤é¤Ê¤¤°Ù¡¤ÇÛÉÛ¤¹¤ë»þ¤Ë¥µ¥¤¥º¤¬Â礭¤¯¤Ê¤ê¤¹¤®¤Þ¤¹
ogg¤òºÆÀ¸¤Ç¤­¤ë¤è¤¦¤Ë¤·¤¿¤¤¤È»×¤¤¤Þ¤¹

SDL¤Ç¤Ï¡¤SDL_mixer¥é¥¤¥Ö¥é¥ê¤ò»ÈÍѤ¹¤ì¤Ð»È¤¨¤ë¤è¤¦¤Ë¤Ê¤ê¤Þ¤¹

¡ûSDL_mixer
http://www.libsdl.org/projects/SDL_mixer/
SDL_mixer-1.2.11.tar.gz

¤³¤ì¤ò¥¤¥ó¥¹¥È¡¼¥ë¤¹¤ëÁ°¤Ë¡¤É¬Íפʥ饤¥Ö¥é¥ê¤òÀè¤Ë¥¤¥ó¥¹¥È¡¼¥ë¤·¤Æ¤ª¤¯É¬Íפ¬¤¢¤ê¤Þ¤¹
libOgg¤È libVorbis¥é¥¤¥Ö¥é¥ê¤òÀè¤Ë¥¤¥ó¥¹¥È¡¼¥ë¤·¤Þ¤¹

¥ª¥ê¥¸¥Ê¥ë¤è¤ê¤â¹â®²½¤·¤¿¥é¥¤¥Ö¥é¥ê¤òÇÛÉÛ¤·¤Æ¤¯¤ì¤Æ¤¤¤ë¤È¤³¤í¤¬¤¢¤ê¤Þ¤¹
¡ûXiph.Org Foundation
http://www.xiph.org/
¥½¡¼¥¹¤ò BSD¥é¥¤¥»¥ó¥¹¤ÇÇÛÉÛ¤·¤Æ¤¯¤ì¤Æ¤¤¤ë°Ù¡¤ºî¤ê¤¿¤¤´Ä¶­Ëè¤Ë¥³¥ó¥Ñ¥¤¥ë¤·¤Æ¡¤ºîÀ®¤·¤¿¼Â¹Ô¥Õ¥¡¥¤¥ë¤È¶¦¤ËÇÛÉۤǤ­¤Þ¤¹

libOgg¤Î¤È¤³¤í¤ò¥¯¥ê¥Ã¥¯
libogg-1.2.0.tar.gz

libVorbis¤Î¤È¤³¤í¤ò¥¯¥ê¥Ã¥¯
libvorbis-1.3.1.tar.gz


libOgg¤«¤é make¤¹¤ë
$ tar zxf libogg-1.2.0.tar.gz
$ cd libogg-1.2.0
$ ./configure
$ make
$ make install

¼¡¤Ë libVorbis¤ò make¤¹¤ë
$ tar zxf libvorbis-1.3.1.tar.gz
$ cd libvorbis-1.3.1
$ ./configure
$ make
$ make install


¤½¤ì¤«¤é¡¤SDL_mixer¤ò¥¤¥ó¥¹¥È¡¼¥ë¤·¤Þ¤¹
$ tar zxf SDL_mixer-1.2.11.tar.gz
$ cd SDL_mixer-1.2.11
$ ./autogen.sh
$ ./configure
¢¨¥³¥³¤Ç¡¤Ogg Vorbis support¤Ëenabled¤¬½Ð¤Æ¤¤¤ë¤³¤È¤ò³Îǧ
¡¡½Ð¤Æ¤¤¤Ê¤±¤ì¤Ð¡¤²¿¤«¤ª¤«¤·¤¤¤Î¤ÇÄ´¤Ù¤ë
$ make
$ make install

¡Ä¡Ä¤Ç¡¤¤¦¤Á¤Î´Ä¶­¤Ç¤Ï¡¤Ogg Vorbis support disabled¤Ë¤Ê¤ê¤Þ¤¹org
¤½¤·¤Æ¡¤¤Ê¤¼¤«¥Ñ¥¹»ØÄꥪ¥×¥·¥ç¥ó¤¬ÍѰդµ¤ì¤Æ¤¤¤Þ¤»¤ó
Unix¤Ç¤Ï¤è¤¯¤¢¤ë¤³¤È¤Ê¤Î¤Ç¡¤ÂçÄñ¤Ï¥Õ¥ë¥Ñ¥¹»ØÄê¤Ç Ogg¤Î¾ì½ê¤ò»ØÄꤹ¤ë¤â¤Î¤Ê¤Î¤Ç¤¬¡Ä¡Ä

»ÅÊý¤¬Ìµ¤¤¤Î¤Ç¡¤°ì»þŪ¤Ë¥Ñ¥¹¤òÄɲä·¤ÆÂбþ¤·¤Þ¤·¤¿
$ export CFLAGS=-I/usr/local/include
$ export LIBS=-L/usr/local/lib
¤³¤ì¤ò¼Â¹Ô¤·¤Æ¤«¤é¡¤configure¤¹¤ë¤È¡¤¥Ñ¥¹¤¬¸«¤Ä¤«¤ë¤è¤¦¤Ë¤Ê¤ê¤Þ¤¹
¥í¥°¥¢¥¦¥È¤¹¤ì¤Ð¾Ã¤¨¤Þ¤¹
BlogÆâ¸¡º÷
Google
ˬÌä¼Ô¿ô

    »²²ÃÃæ¥é¥ó¥­¥ó¥°

    ¿Íµ¤¥Ö¥í¥°¥é¥ó¥­¥ó¥°

    ZODIAC PSPÈÇ
    ¥Ó¥¸¥å¥¢¥ë¥Î¥Ù¥ë
    ZODIAC PSPÈÇ
    • ¥é¥¤¥Ö¥É¥¢¥Ö¥í¥°