MediaPlayer - błąd przy inicjowaniu MCI

0

Witam,
mam w uproszczeniu taki kod:

MediaPlayer1.FileName:= 'c:\muzyka1.mp3' ;
MediaPlayer1.Open ;
MediaPlayer1.Play ;

// ...

MediaPlayer1.Stop ;
MediaPlayer1.Close ;
MediaPlayer1.FileName:= 'c:\muzyka2.mp3' ;
MediaPlayer1.Open ;
MediaPlayer1.Play ;

odtwarza pierwszy plik ale gdy dochodzi do zamknięcia pierwszego pliku i odtworzenia drugiego wyskakuje "wystąpił błąd przy inicjowaniu MCI" i linijka

MediaPlayer1.Play ;

(w drugim bloku programu) podświetla się na niebiesko.

Co jest nie tak? Bardzo proszę o pomoc.

0

Wiem że temat ma 5 lat, ale może komuś to się przyda.

To nie jest problem z kolejnością, ale w ogóle z plikiem. Na moim komputerze mam jeden plik który zawsze działa (bez względu na kolejność) oraz taki który nigdy nie działa, nawet gdy jest pierwszy. Niemniej przyczyny nie znam.

0

Możliwe przyczyny niegrania pliku:

  1. nieobsługiwany przez player rodzaj strumienia (MPEG-1 Audio Layer III vs MPEG-2 Audio Layer III)
  2. jakieś dodatkowe nagłówki - spotkałem odtwarzacz który otwierał pliki z ID3v1 ale nie z ID3v2, na szczęście był OpenSource i udało mi się poprawić źródła
  3. plik .mp3 nie jest tak naprawdę MP3 tylko ktoś nadał takie rozszerzenie: niektóre playery odtworzą plik w innym formacie prawidłowo, niektóre sugerują się tylko rozszerzeniem
  4. plik skopany
0

@Azarien: dzięki za odpowiedź ;)

  1. Mógłbyś rozwinąć temat?
  2. Mam osobną bibliotekę (też open source), jednak ona ogarnia oba rodzaje.
  3. Myślałem o tym i wykluczyłem tę opcję.

PS: Ściągnąłem już 3 źródła odtwarzaczy w delphi, i żaden nie mógł odtworzyć tego pliku. Czemu popularne odtwarzacze jak Windows Media Player radzą sobie z nim?

1

Czemu popularne odtwarzacze jak Windows Media Player radzą sobie z nim?
Bo są napisane dobrze, w przeciwieństwie do "źródeł odtwarzaczy w delphi".

  1. Mam osobną bibliotekę (też open source), jednak ona ogarnia oba rodzaje.
    Miałem na myśli, że sama obecność tagu ID3v2 powodowała, że plik przestawał być rozpoznawany i nie grał.
  1. Mógłbyś rozwinąć temat?
    Są dwa formaty pod nazwą „mp3”: starsza wersja, pochodząca ze standardu MPEG-1 i nowsza, ze standardu MPEG-2. Ta pierwsza jest częściej spotykana.
    Czym się formaty konkretnie różnią nie wiem, pewnie niczym szczególnym poza nie całkiem pełną kompatybilnością.

Ściągnąłem już 3 źródła odtwarzaczy w delphi
Proponuję porzucić "odtwarzacze w delphi" i zainteresować się DirectShow; odpalenie mp3-ki na systemowych kodekach to tylko kilka linijek kodu.

1 użytkowników online, w tym zalogowanych: 0, gości: 1