Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Cross-Platform-Entwicklung (https://www.delphipraxis.net/91-cross-platform-entwicklung/)
-   -   WAV in MP3 konvertieren auf OSX (https://www.delphipraxis.net/180705-wav-mp3-konvertieren-auf-osx.html)

rolandED 10. Jun 2014 19:02

WAV in MP3 konvertieren auf OSX
 
versuche mit Delphi XE6 eine Anwendung für OSX zu schreiben die WAVs in MP3 konvertieren soll. Dafür wird BASS und das LAME Framework benutzt.
Das ProgressBar zeigt aktivität, es kommen auch keine Fehlermeldung aber es wird kein MP3 erzeugt.
Vielleicht hat jemand eine Idee was ich falsch gemacht habe.
Code:
       LameString := '/Library/Frameworks/LAME.framework/LAME -b 128 --bitwidth 24 -q 2 - /Users/User/Downloads/song.mp3';

        MP3Channel := BASS_StreamCreateFile(false, pchar(/Users/User/Downloads/song.wav'), 0, 0, BASS_SAMPLE_FLOAT or BASS_STREAM_DECODE or BASS_UNICODE);
        if MP3Channel = 0
           then ShowMessage('Error BASS_StreamCreateFile for MP3:' + GetBassError)
           else begin
           if BASS_Encode_Start(MP3Channel, pchar(LameString), BASS_ENCODE_FP_24BIT or BASS_UNICODE, nil, nil) = 0
              then ShowMessage('Error BASS_Encode_Start:' + GetBassError + #13 + LameString)
              else begin
              BytesRead := 4 * 102400;
              ProgressBar.Value := 0;
              while BASS_ChannelIsActive(MP3Channel) = BASS_ACTIVE_PLAYING
                    do begin
                    BytesCnt := BASS_ChannelGetData(MP3Channel, @DataFloatBuffer[0], BytesRead);
                    if BytesCnt = DW_ERROR
                       then ShowMessage('Error BASS_ChannelGetData:' + GetBassError);

                    MP3BytePosition := BASS_ChannelGetPosition(MP3Channel, BASS_POS_Byte);
                    if MP3BytePosition = QW_ERROR
                       then begin
                       MP3TimePosition := 0;
                       ShowMessage('Error BASS_ChannelGetPosition:' + GetBassError);
                       end else MP3TimePosition := trunc(1000 * BASS_ChannelBytes2Seconds(MP3Channel, MP3BytePosition));
                    ProgressBar.Value := MP3TimePosition;
                    Application.ProcessMessages;
                    end;

              if not BASS_Encode_Stop(MP3Channel)                          
                 then ShowMessage('Error BASS_Encode_Stop:' + GetBassError);

              Result := true;
              end;

           BASS_StreamFree(MP3Channel);
           end;

rolandED 13. Jun 2014 14:55

AW: WAV in MP3 konvertieren auf OSX
 
bump


Alle Zeitangaben in WEZ +1. Es ist jetzt 00:42 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz