[تمرين ]تضمين ملف صوتي mp3 بتطبيق دلفي
#61
السلام عليكم أخي كارجيم
عفوا نسيت هذا الباس
تم رفع الملف من جديد من اجلك رغم ان مكتبة newac اشك في انها لا تتحمل الملفات الصوتية الطويلة
و انا الان بصدد محاولة ادخال الصوت عن طريق ملفات wav دون استخدام مكتبات اضافية لكن تنقصني اكواد الاستئناف
الملف الجديد و معه كل الملفات اخي تفضل
PHP كود :
http://www.mediafire.com/?d7b2c23n73dk74h 
الرد
#62
لك من كل الشكر والتقدير
تجنب ان ترفع الملف التنفيذي
لان حجمة كبير يكفي السورس
تحياتي
الرد
#63
[صورة: picture0002p.png]
الاخ TF6m
النتيجة بدون صوت
والمثال صعب!!

هل من توضيح فيما يخص المثال المرفق
اي تعليقات حول اسباب استخدام الكود
تحياتي
PHP كود :
function MainDlgFunc(hWnd: hWnd; uMSG: Dword; wParam: wParam; lParam: lParam)
  : 
Bool; stdcall;

begin
  Result 
:= True;
  case 
uMSG of
    WM_INITDIALOG
:
      
begin
        CheckRadioButton
(hWnd, 12, 13, 12);
        
BoxedAppSDK_Init;
        
hFile := BoxedAppSDK_CreateVirtualFile(PAnsiChar('fox.mp3'),
          
// MyMP3.mp3  fox
          
GENERIC_WRITE, FILE_SHARE_READ, nil, CREATE_NEW, 0, 0);
        
HandleStream := THandleStream.Create(hFile);
        
ResourceStream := TResourceStream.Create(0, 'intro', RT_RCDATA);
        
HandleStream.CopyFrom(ResourceStream, ResourceStream.Size);
      
end;
    
WM_CLOSE:
      
EndDialog(hWnd, 0);

    
WM_DESTROY:
      
PostQuitMessage(0);

    
WM_COMMAND:
      
begin
        
case wParam of
          11
:
            
begin
              
if IsDlgButtonChecked(hWnd, 12) = BST_CHECKED then
              begin
                _FreeAll
;
                if 
not FSOUND_Init(44100, 32, 0) then
                  MessageBox
(0, 'Error initializing audio!', nil, 0);
                
hMod := FSOUND_Stream_Open('fox.mp3', 1, 0, 0);
                if (
hMod = nil) then
                  MessageBox
(0, 'Could not create user stream', nil, 0);
                if 
FSOUND_Stream_Play(0, hMod) < 0 then
                  MessageBox
(0, 'Error playing music!', nil, 0);
              
end;
              if 
IsDlgButtonChecked(hWnd, 13) = BST_CHECKED then
              begin
                _FreeAll
;
                if 
not BASS_Init(-1, 44100, 0, 0, nil) then
                  MessageBox
(0, 'Error initializing audio!', nil, 0);
                
mods := BASS_StreamCreateFile(false, Pchar('fox.mp3'), 0, 0,
                  
BASS_MUSIC_RAMP);
                if (
mods = 0) then
                  MessageBox
(0, 'Could not create user stream', nil, 0);
                if 
not BASS_ChannelPlay(mods, True) then
                  MessageBox
(0, 'Error playing music!', nil, 0);
              
end;
            
end;
        
end;
      
end
  
else
    
Result := false;
  
end;
end; 
الرد
#64
السلام عليكم

ولما التعب

بأمكاننا استخدام نسخة محمولة عن طريق برنامج وين رار او غيره من البرامج
ينتج عن ذلك ملف تنفيذي يضم ديلفي + mp3
مثال

http://www.4shared.com/file/qi5ksbsB/mp3_portabol.html

استخدمت هذه الترميزة في برنامج الرار
ونسطتع وضع عدد كبير من ملفات mp3

إقتباس :Setup=Program Name.exe
TempMode
Silent=1
Overwrite=1
حتى وان كنت على الطريق الصحيح ان لم تتقدم سوف يدهسك من خلفك
الرد
#65
المحجوب كتب :ولما التعب
بأمكاننا استخدام نسخة محمولة عن طريق برنامج وين رار او غيره من البرامج
التعب لازم Big Grin التمرين وضع لتفكر وتتعلم شيئ جديد
استخدام WinRAR يوجب استخراج الملفات بمكان ما بالقرص ثم تنفيذ برنامج
اقدم من WinRAR هناك Microsoft's SFX Cabinet
الرد
#66
استعملت هذا البرنامج ; وهذا للتحوبل الى wav
السهل الممتنع Big Grin
PHP كود :
procedure Play(ms:TMemoryStream);
begin
try
sndPlaySound(ms.Memory, SND_ASYNC or SND_MEMORY);
finally
FreeAndNil(ms);
end;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
Play
(basit_001_ToStream)
end; 
PHP كود :
Unit basit_001;

interface
Uses Windows, Classes;


Const
basit_001_Szie=340681;


function 
basit_001_ToStream:TMemoryStream;

Const
basit_001_:Array[0..basit_001_Szie] of Byte=(
   $
52,$49,$46,$46,$C1,$32,$05,$00,$57,$41,$56,$45,$66,$6D,$74,$20,$10,$00,.....

   $
00);

implementation


function basit_001_ToStream:TMemoryStream;
begin
  Result
:= TMemoryStream.Create;
  
Result.Write(basit_001_,basit_001_Szie);
  
Result.Position:= 0;
End; 


الملفات المرفقة
.rar   Stream.rar (الحجم : 227.66 ك ب / التحميلات : 32)
الرد
#67
onexite كتب :استعملت هذا البرنامج ; وهذا للتحوبل الى wav
حل صحيح، مع ان الفكرة تم كتابتها منذ اول رد بالموضوع Rolleyes
الرد


التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم