Tutorials/Audiere Basic

From GameDevID

Jump to: navigation, search

Penulis : L_O_J

Contents

Audiere Guide

Introduction



Audiere adalah high level audio API. Artinya dengan menggunakannya user tidak perlu berhadapan dengan kerumitan dalam proses mengolah data-data audio. Audiere dapat menangani format-format audio berikut ini :


Jenis audio output yang didukung oleh Audiere adalah sebagai berikut


Audiere merupakan software Open Source yang berlisensi LGPL. Yang artinya Audiere bebas digunakan dalam produk komersial maupun non komersial, selama si pemakai tidak mengubah source code dari Audiere, jika terjadi perubahan dalam source code Audiere (untuk kemudian digunakan dalam produknya) maka produk tersebut harus direlease dalam lisensi LGPL, seperti Audiere.


Mulai menggunakan Audiere



Audiere dibuat dengan menggunakan bahasa C++, maka Audiere hanya dapat digunakan dalam bahasa tersebut (mungkin bisa digunakan dengan bahasa lain, jika ada yang membuat wrappernya). Untuk menggunakan Audiere dengan compiler C++ sangatlah mudah, berikut ini langkah-langkahnya (dengan asumsi anda sudah tahu bagaimana mengatur setting linker dan compiler C++ yang anda gunakan

  • Download Audiere yang terbaru melalui websitenya
  • Tambahkan "audiere.lib" ke dalam list library, yang dilink ke program, pada linker
  • Tambahkan "audiere.h" dalam source code program.
  • Ingat semua fungsi, class dan interface Audiere terdapat dalam namespace audiere::


Memainkan file audio dengan Audiere



Yang dibutuhkan :


Sebelum "terjun" ke coding, perlu diingat Audiere menggunakan smart pointer (reference counted pointer) jadi di dalam Audiere setiap class pointer cukup di deklarasikan dan dialokasikan, kita tidak perlu menghandle pendealokasian karena sudah ditangani secara otomatis. Semua class yang diakhiri dengan "Ptr" adalah smart pointer. Namun apabila kurang dirasa nyaman menggunakan smart pointer dari Audiere , silahkan menggunakan cara manual dengan pointer biasa, cukup hilangkan "Ptr" dan ganti dengan "*" yang menandakan pointer biasa. Ok sekarang ke code.


Note : untuk memudahkan keterangan tentang code yang ada akan dimasukkan sebagai comment

#include <iostream>
#include <windows.h>
#include "audiere.h"

int main( int argc, char** argv )
{
    //!
    //! Cek apakah ada file yang bisa dimainkan (argv[1] == nama file)
    //!
    if( argc <= 1 )
        return -1;

    //!
    //! Audiere membutuhkan output device untuk mengeluarkan audio ke speaker,
    //! jadi yang paling pertama dibuat adalah audio device.
    //!
    audiere::AudioDevicePtr  device = audiere::OpenDevice();

    //!
    //! Kita akan membuka file audio dan memainkannya dengan audiere, pertama kita buat
    //! dulu output stream yang akan terkoneksi ke device dan memberikan data audio ke device.
    //! note : jika format audio yang ingin digunakan tidak diketahui bisa digunakan
    //! FF_AUTODETECT.
    //!
    audiere::OutputStreamPtr stream = audiere::OpenSound( device, argv[1], true, audiere::FF_OGG );
    
    //!
    //! setelah output stream sudah terbuka, sekarang tinggal mainkan.
    //! 
    std::cout << stream->getLength() << " frame" << std::endl;
    std::cout << "playing...." << std::endl;
    
    stream->play();
    while( stream->isPlaying() && !GetAsyncKeyState(VK_SPACE) ) 
    {
        //!
        //! mainkan selama masih belum habis / space bar tidak ditekan.
        //! 
    }

    stream->stop();
    std::cout << "done." << std::endl;
    system( "PAUSE" );

    return 0;
}

#pragma comment(lib, "audiere.lib" )
Personal tools