begin process at 2012 05 29 04:44:52
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C++ & C++ .NET

 > 

Windows

 > 

Multimédia

 > 

FMOD Netstream


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

FMOD Netstream

vendredi 30 janvier 2009 à 11:49:37 | FMOD Netstream

PH2621

Bonjour

On peut voir cet exemple dans FMOD (netstream) j'ai repris cet exemple de cette façon.

FMOD_SYSTEM    *rsystem;
FMOD_SOUND      *sound;
FMOD_CHANNEL   *channel;
FMOD_RESULT      result;
FMOD_MODE   mode = FMOD_SOFTWARE | FMOD_LOOP_OFF | FMOD_2D | FMOD_CREATESTREAM
                                                           |  FMOD_NONBLOCKING;
FMOD_OPENSTATE openstate;
FMOD_TAG     tag;


char * SmoothWeb[] =
{
    "http://64.15.67.14:80",                                             //  0
    "http://scfire-ntc-aa10.stream.aol.com/stream/1005",   //  1
    "http://scfire-dtc-aa01.stream.aol.com/stream/1005",   //  2
    "http://scfire-dtc-aa02.stream.aol.com/stream/1005",   //  3
    "http://scfire-dtc-aa03.stream.aol.com/stream/1005",   //  4
    "http://scfire-dtc-aa04.stream.aol.com/stream/1005",   //  5
           ................
};
int maxsmooth = (sizeof(SmoothWeb) / sizeof(int)) -1;
char **RadioWeb;

void ErrCheck(FMOD_RESULT result)
{
  if (result != FMOD_OK)
  {
    printf("FMOD error! (%d) %s\n", result, FMOD_ErrorString(result));
    exit(-1);
  }
}
 
int main(int argc, char *argv[])
{
  printf("===================================================================\n");
  printf("                                              Test Netstream                                                                  \n");
  printf("===================================================================\n\n");

  printf("Press space to pause, Esc to quit\n\n");

  result = FMOD_System_Create(&rsystem);
  ErrCheck(result);

  result = FMOD_System_GetVersion(rsystem, &version);
  ErrCheck(result);

  if (version < FMOD_VERSION)
  {
    printf("Erreur!  La version que vous devez utiliser FMOD %08x\n", FMOD_VERSION);
    return 0;
  }

  RadioWeb = SmoothWeb;  MaxRadio = maxsmooth;
  IdxRadio = 0;  loop = TRUE;

  result = FMOD_System_Init(rsystem, 1, FMOD_INIT_NORMAL, 0);
  ErrCheck(result);                   *** A noter que dans ripnetstream on voit 100 (Pourquoi ?)

  result = FMOD_System_SetStreamBufferSize(rsystem, 64*1024, FMOD_TIMEUNIT_RAWBYTES);
  ErrCheck(result);

  result = FMOD_System_CreateSound(rsystem, RadioWeb[IdxRadio], mode, 0, &sound);
  ErrCheck(result);

  do
  {
    if (kbhit())
    {
      key = getch();
      switch (key)
      {
        case ' ' :
        {
          if (channel)
          {
            FMOD_Channel_GetPaused(channel, &paused);
            FMOD_Channel_SetPaused(channel, !paused);
          }
          break;
        }
        case 27:
        {
          loop = FALSE;
          break;
        }
      }
    }

    FMOD_System_Update(rsystem);

    if ((sound) && (!channel))
    {
      FMOD_System_PlaySound(rsystem, FMOD_CHANNEL_FREE, sound, FALSE, &channel);
    }

    if (channel)
    {
      for (;;)
      {
        if (FMOD_Sound_GetTag(sound, 0, -1, &tag) != FMOD_OK)
          break;
        if (tag.datatype == FMOD_TAGDATATYPE_STRING)
          printf("%s = %s                            \n", tag.name, tag.data);
      }

      FMOD_Sound_GetOpenState(sound, &openstate, &percent, &starving);
      FMOD_Channel_GetPosition(channel, &ms, FMOD_TIMEUNIT_MS);
      printf("Time %02d:%02d  (%3d%%)  %d  \r", ms /1000 /60, ms /1000 %60, percent, IdxRadio);

      if (starving)  // Le buffer est vide ? ... la liaison ? ... ou ? ...
      {
        FMOD_Sound_Release(sound); // Et la on bloque on ne peut pas effacer ce "sound"
        sound = 0; channel = 0;            // C'est plus génant Que peut-on faire ???
        if (++IdxRadio > MaxRadio) IdxRadio = 0;
        FMOD_System_CreateStream(rsystem, RadioWeb[IdxRadio], mode, 0, &sound);
        Sleep(1000);
      }
    }
    Sleep(200);
  } while (loop);

  printf("\nShutting down.\n");

  result = FMOD_Sound_Release(sound);
  ErrCheck(result);
  result = FMOD_System_Close(rsystem);
  ErrCheck(result);
  result = FMOD_System_Release(rsystem);
  ErrCheck(result);

  return 0;
}

Donc le problème est situé. Si la liaison se perd pourquoi pas mais comment basculer ?
commme je l'avais dit le message précédent.







Cette discussion est classée dans : system, fmod, result, sound, channel


Répondre à ce message

Sujets en rapport avec ce message

Pb Message Box en NET [ par Bertr27 ] Salut a tous. Je veux un message de confirmation avant de quitter mon application mais sa marche pas. L'erreur est l'erreur "C2065:'Yes' : undeclared Prob avec fmod [ par gbourgeois0019 ] Salut tout le monde,J'ai présentement un problème assez bizarre ! Le bout de code qui me cause problème est le suivant.unsigned int SOUND_MGR::GetLeng LIENS INTERNET [ par sam469 ] Bonsoir a toutes et tous,voila je debute tous juste dans le c++ apres avoir fais du VB6et ma question serait pour l'instant de savoir comment creer un "fmod" ? Un mot clé pour VC++ 6.0 ? [ par nightlord666 ] Bon c'est une question sans importance, mais je viens de me rendre compte que "fmod" est un mot clé dans mon Visual C++ 6.0 (écrit en bleu)... Est-ce FMOD libération de la mémoire.... [ par MorbhAck ] Bonsoir a tous !J'amerai savoir comment on libère le mémoire avec FMOD.Je suis en train de faire un Chipdisk (une sorte de Jukebox)et le problème c'es FMOD ..... :( [ par MorbhAck ] Simple question .... Jutilise fmod pour lire un mp3jutilise FSOUND_SAMPLEEt jaimerai libéré la mémoire pask'il bouffe 44 Mo de mémoire Probleme lien bouton [ par spounk77 ] bonsoir,j'aurai besoin de votre aide, je suis en train de réaliser un programme en WinForms et je n'arrive pas a donner un lien a mon bouton. Je m'exp Imprimer les images contenue dans une richtextbox [ par coste135 ] J'ai creer une richtextbox qui contient des images , comment imprimer le contenu de celle ci (surtout le images)? voila le code :private: System::Void renvoyer un system string [ par secalex ] Bonjour,Je suis entrain de devlopper une petite interface qui effectue des calculs à partir d'une valeur récupérée d'une textbox.Je récupère ma valeur probleme system(); [ par kirby94460 ] bonjour mon probleme est :quand j'utilise system("music.mp3") toutes les instructions qui suivent ne s'effectuent que si je ferme la musique precedeme


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

Photothèque

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,624 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales