Hallo,
ich habe ein kleines Problem wo ich nicht mehr weiter weiß.
Und zwar habe ich eine Klasse geschrieben die einzelne Tonspuren verwalten bzw. abspielen kann.
Headerdatei:
//---------------------------------------------------------------------------
#ifndef U_TonspurH
#define U_TonspurH
#include
#include
#include
#include
//---------------------------------------------------------------------------
class Track
{
public:
Track(void);
~Track(void);
void setVolume(int volume);
int getVolume(void) const;
void play(AnsiString file);
void stop(void);
private:
AnsiString _alias;
int _volume;
void CloseFile(void);
};
class MediaPlayer
{
public:
MediaPlayer(int TrackCount);
~MediaPlayer(void);
Track &operator[](int index);
void stopAll(void);
private:
Track *_tracks;
int _TrackCount;
};
#endif
Cpp-Datei:
//---------------------------------------------------------------------------
#pragma hdrstop
#include „U_Tonspur.h“
//---------------------------------------------------------------------------
#pragma package(smart_init)
Track::Track(void)
{
_alias = „“;
_volume = 100; // Anfangs mit voller Lautstärke
}
Track::~Track(void)
{
CloseFile();
}
void Track::setVolume(int volume)
{
_volume=volume;
}
int Track::getVolume(void) const
{
return _volume;
}
void Track::stop(void)
{
mciSendString(("stop "+_alias).c_str(),0,0,0);
}
void Track:lay(AnsiString file)
{
if(_alias != „“)
CloseFile();
int x;
x = random(255);
_alias = „Track“ + x;
mciSendString((„open „“+file+“" alias "+_alias + „wait“).c_str(),0,0,0);
mciSendString((„play „+_alias+“ from 0“).c_str(),0,0,0);
mciSendString(("setaudio „+_alias+“ volume to "+IntToStr(_volume)).c_str(),0,0,0);
}
void Track::CloseFile(void)
{
mciSendString(("close "+_alias).c_str(),0,0,0);
}
Track &MediaPlayer::operator[](int index)
{
return _tracks[index];
}
MediaPlayer::MediaPlayer(int TrackCount)
{
_TrackCount = TrackCount;
_tracks = new Track[TrackCount];
}
MediaPlayer::~MediaPlayer(void)
{
stopAll();
delete[]_tracks;
}
void MediaPlayer::stopAll(void)
{
for(int i=0;i