Newsgroup: it.comp.lang.delphi
Titolo: MediaPlayer: sto cazzo di controllo....................

E' settimane e settimane che cerco informazioni nel web su come mettere in
play tramite MediaPlayer, un .AVI (e chiaramente anche un .MPG o MPEG)
indirizzandolo su UN'ALTRA SCHEDA AUDIO installata sul mio pc....
Sto cazzo di fottuto di minkia di merda di controllo... (accidenti alla
borland, alla microsoft e chi piu' ne ha piu' ne metta........) NON NE VUOLE
SAPERE UN CAZZO........
Ho trovato qualche info che funziona SOLO PER .WAV (ma dico io........ CHE
CAZZO CI VOLEVA FARLO ANDARE ANCHE PER GLI   .AVI ?????)
Ho trovato anche un trucchetto che in pratica CAMBIA prima di mettere in
play il mediaplayer la stringa di registry dove mediaplayer accede per
sapere DOVE cazzo suonare...............
MA NON FUNZIONA.......... o almeno, per essere precisi, funziona SOLO se
chiudo il programma e lo rilancio.............
Io mi reputo un bravo programmatore con due coglioni cosi'..... e se non ci
riesco io, DUBITO che qualcuno di voi ce la possa fare... in ogni modo, io
ci provo.... se qualcuno ce l'ha fatta, me lo faccia sapere.... Sono
disposto anche a pagare per questa informazione.....
PS: Scusate l'incazzo, MA SONO veramente molto frustrato...............

 indirizzandolo su UN'ALTRA SCHEDA AUDIO installata sul mio pc....
Scusa, ma non ho capito...
Tu hai 2 schede audio sul pc e vuoi dirottare l'audio su una +ttosto che
sul''altra?
Ho capito bene?
A.


E si vede....
Buona fortuna.
Morde
--------------------------------
Inviato via 
http://usenet.libero.it

 ha scritto nel messaggio
news:ape100$182g$1...@newsreader1.mclink.it...

Hai capito benissimo... ;))
voglio dirottare l'audio di mediaplayer sulla scheda audio che mi pare nel
momento che mi pare... ( chiaramente prima di fare il PLAY...)
Questo metodo, funziona SOLO se mediaplayer.DeviceType := dtWaveAudio
var
  parms : MCI_WAVE_SET_PARMS ;
begin
  parms.wOutput:= n ;
  mciSendCommand(MediaPlayer.DeviceID, MCI_SET, MCI_WAVE_OUTPUT,
Longint(@parms))
Il seguente sistema invece, funziona, MA SOLO se esco dal programma e lo
rilancio....
function SetSoundCard(s_card : string) : string ;
const
  cKey = 'Software\Microsoft\Multimedia\Sound Mapper' ;
  cPlayback = 'Playback' ;
var
  TheReg : TRegistry ;
begin
  TheReg:= TRegistry.Create ;
  try
    TheReg.RootKey:= HKEY_CURRENT_USER ;
    if TheReg.OpenKey(cKey, True) then
     begin
       Result:= TheReg.ReadString(cPlayback) ;
       TheReg.LazyWrite:= False ;
       if Result<>s_card then
         TheReg.WriteString(cPlayback, s_card) ;
       TheReg.CloseKey
     end
  finally
    TheReg.Free
  end ;
end ;
Esempio di utilizzo:
...
active_card:= SetSoundCard(pSecSndCard) ; // per esempio 'Creative Sound
Blaster PCI'
MediaPlayer.Play ;
SetSoundCard(active_card) ;

 rilancio....
[cut]
Fai questa prova alla ceca, no inserire in media player a design time, ma
crealo runtime e prima di crearlo imposta i dati nel registry, cosě'
all'inizializzazione l'oggetto si carica i dati aggiornati, oppure inserisci
il codice di setup all'interno della procedura principale prima che
l'applicazione crei la main form.
Saluti


eheheheheheeh... e che sono fesso?? l'ho fatta questa prova... ma nulla.....
oramai conosco a memoria anche il sorgente di mplayer.pas ......