Форум русскоязычного сообщества Ubuntu


Следите за новостями русскоязычного сообщества Ubuntu в Twitter-ленте @ubuntu_ru_loco

Автор Тема: Простое воспроизведение ogg или wav файла  (Прочитано 7750 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Crew

  • Автор темы
  • Старожил
  • *
  • Сообщений: 1384
  • xneur 0.20.0
    • Просмотр профиля
Re: Простое воспроизведение ogg или wav файла
« Ответ #15 : 30 Августа 2007, 14:40:46 »
В общем, код получился таким. Однако, есть проблема. При вызове play_file() звук проигрывается только 1 раз. При повторном вызове функции происходит сегфолт.
Пока решением столо вынесение alutInit и alutExit в отдельные функции, вызываемые только при запуске программы и при завершении работы. Но мне это не нравится. Может кто-то подсказать, почему просходит сегфолт?
Цитировать
#include <stdlib.h>
#include <AL/al.h>
#include <AL/alc.h>
#include <AL/alut.h>

#include "log.h"
#include "types.h"


static void AlutError (void)
{
   log_message(ERROR, "%s", alutGetErrorString (alutGetError ()));
}

void play_file(char *path)
{
   ALuint AlutBuffer, AlutSource;
   

   if (!alutInit (NULL, NULL))
   {
      AlutError();
      return;
   }

   AlutBuffer = alutCreateBufferFromFile(path);
   if (!AlutBuffer)
   {
      AlutError();
      return;
   }
   
   alGenSources(1, &AlutSource);
   alSourcei (AlutSource, AL_BUFFER, AlutBuffer);
   alSourcePlay (AlutSource);
   
     alutSleep (1);
   alSourceStop(AlutSource);
   alDeleteBuffers(1, &AlutBuffer);
   alDeleteSources(1, &AlutSource);
   
   alutExit ();
   return;
}
PPA cо стабильными сборками xneur: ppa:andrew-crew-kuznetsov/xneur-stable
PPA c "ночными" сборками xneur: ppa:andrew-crew-kuznetsov/xneur-unstable

Оффлайн Crew

  • Автор темы
  • Старожил
  • *
  • Сообщений: 1384
  • xneur 0.20.0
    • Просмотр профиля
Re: Простое воспроизведение ogg или wav файла
« Ответ #16 : 30 Августа 2007, 14:53:09 »
Забыл добавить, ненравится, так как субя по всему без alutExit программа занимает какой-то ресурс и предпрослушивание в наутилусе wav становится невозможным. Аналогично, Totem-xine тоже не проигрывает wav
Однако, Audacious отлично их играет.
PPA cо стабильными сборками xneur: ppa:andrew-crew-kuznetsov/xneur-stable
PPA c "ночными" сборками xneur: ppa:andrew-crew-kuznetsov/xneur-unstable

 

Страница сгенерирована за 0.033 секунд. Запросов: 25.