Novo

Forum kao aplikacija na telefonu

Dodajte forum na početni ekran i koristite ga kao aplikaciju, sa menijem na dnu ekrana.

  • 10 odgovora
  • 3.450 pregleda

Najnovija ↓

Pustanje muzike u console app. 24.01.2009. u 15:16 · pre 216 meseci
izmenjeno 2 puta, poslednji put Helionprime 25.01.2009. u 11:44
  1. Helionprime25.01.2009. u 11:44zapis iz teksta poruke
  2. Helionprime24.01.2009. u 15:50zapis iz teksta poruke
#1
Pozz. Hoću da mi program kad se pokrene, da pusti pjesmu. I to ne tako da pozove Winamp ili mediaplayer.
Ja sam otkucao nešto i sad mi treba pomoć.
Radim u DevCpp-u.
Evo konkretna pitanja:

1. Pjesma radi 30-ak sekundi i prekine. Hoću da završi do kraja
2. Hoću da kontrolišem jačinu zvuka jer je po defaultu na maksimumu.
3. Šta treba da se uradi da bi se umjesto wav fajla koristio mp3

Code:

#include <windows.h>
#include <stdlib.h>
//linkovao sam winmm.a
main ()
{
     
   
     
     PlaySound("0.wav",0, SND_FILENAME);  // PlaySound("0.wav",0, SND_FILENAME|SND_ASYNC); će da otpjeva
                                          // čitavu pjesmu, ali ovom slučaju SND_ASYNC čeka sljedeći PlaySound
                                          // poziv i samim tim preskače o.wav i pusta 1.wav
    PlaySound("1.wav",0, SND_FILENAME);
     system("pause");
         
         }
// ne može jednostavnije :)


i ako neko ima ideju: Kako da se pjesma uključi unutar programa, a ne da bude externi fajl?
Potpis
"Dont worry about thing, 'cause every lil' thing is gonna be allright" Bob Marley
Re: Pustanje muzike u console app. 25.01.2009. u 11:43 · pre 216 meseci #2
Ima li ikoga. Pa nije valjda da sam jedini koji ovo radi. !!???

Uspio sam da riješim ovo što pjeva 30-ak sekundi. Sad radi čitava pjesma, ali troši 100% procesora, i to nije ono što sam htio postići !!! (" ali radi ")

Uspio sam da ubacim pjesme unutar exe fajlova, tako da više nisu lokalni fajlovi. (s tim da je exe fajl 150 MB i treba 3 minuta da se kompajlira , jer je wav fajl u pitanju a ne mp3 )

__________________________________

Zna li neko odgovor na drugo i treće pitanje ..
Potpis
"Dont worry about thing, 'cause every lil' thing is gonna be allright" Bob Marley
Re: Pustanje muzike u console app. 25.01.2009. u 13:16 · pre 216 meseci
izmenjeno 2 puta, poslednji put Helionprime 25.01.2009. u 15:32
  1. Helionprime25.01.2009. u 15:32zapis iz teksta poruke
  2. Helionprime25.01.2009. u 13:30zapis iz teksta poruke
#4
I negde sam pročitao da mciSendString ne može da reprodukuje resource fajlove.

Code:

//RESOURCE.H

#ifndef RESOURCE_H
#define RESOURCE_H
#define MUSIC 9001
#define MUSIC1 9002


#endif


Code:

//RESOURCE.RC
#include "resource.h"
MUSIC MPEGVIDEO "3.mp3"
MUSIC1 WAVE "0.wav"


Kako da reprodukujem ove fajlove "0.mp3" i "3.mp3" ( ili ipak moraju biti lokalni fajlovi )
Potpis
"Dont worry about thing, 'cause every lil' thing is gonna be allright" Bob Marley
Re: Pustanje muzike u console app. 25.01.2009. u 13:36 · pre 216 meseci #6
DearBear, znam za to. To sam i uradio sa PlaySound.
Problem je što se u tom slučaju koriste wave fajlovi (a imam ih 4 - 5) i kad ih sve potrpam u resource dobije se gigantski exe fajl.
Iz tog razloga želim da u resource stavim mp3.

Odustao sam od PlaySound-a. Zato pitam da li mciSendString može da čita resource ?
Potpis
"Dont worry about thing, 'cause every lil' thing is gonna be allright" Bob Marley
Re: Pustanje muzike u console app. 25.01.2009. u 13:50 · pre 216 meseci
izmenjeno 1 put, poslednji put mmix 25.01.2009. u 14:16
  1. mmix25.01.2009. u 14:16zapis iz teksta poruke
#7
mozes i da iskoristis DirectX Sound. Izvini za namespace, nisam video da je cpp forum, ali svejedno mozes directx audio da koristis i iz C++a.
Potpis
Sloba je za 12 godina promenio antropološki kod srpskog naroda. On je od jednog
naroda koji je bio veseo, pomalo površan, od jednog naroda koji je bio znatiželjan, koji
je voleo da vidi, da putuje, da upozna,
od naroda koji je bio kosmopolitski napravio narod koji je namršten, mrzovoljan,
sumnjicav, zaplašen, narod koji se stalno nešto žali, kome je stalno neko kriv - Z.Đinđić
Re: Pustanje muzike u console app. 25.01.2009. u 15:00 · pre 216 meseci #8
Hvala mmix na prijedlogu. no ja sam još "noob" za te malo "vičnije" stvari. No u svakom slučaju hvala.

Koncentrisao sam se na ovo što mi je itf predložio. Završio sam kod koristeći mciSendString funkciju, jer sam uspio da pustim mp3 fajl, i mogu da reprodukujem pjesmu u cijeloj dužini, a da pri tome neznatno trošim resurse procesora.
Znači to mi se sviđa :)

Još samo treba da skontam da li mogu fajlovi da se upakuju u EXE . Znam neko će reći da sam dosadan, ali ovaj program mora da radi. Stoga ne smem da dozvolim da zbog slučajnog nestanka audio fajlova propadne sav trud.

Potpis
"Dont worry about thing, 'cause every lil' thing is gonna be allright" Bob Marley
Re: Pustanje muzike u console app. 26.01.2009. u 09:44 · pre 216 meseci #9
Mp3 se može staviti u exe preko resursa (RCDATA), no da bi ga tvoja aplikacija mogla koristiti prvo taj mp3 moraš extractirati iz EXE u neki temp.mp3 pa tek onda taj temp.mp3 "svirati". Najbolje ti je obaviti sva extractiranja odmah na početku programa (nekakav "loading" aplikacije), a kada aplikacija završi izbrisati sve extractirane datoteke.

Evo code-a iz Delphija:

Code:
procedure TForm1.Button2Click(Sender: TObject) ;
var
 rStream: TResourceStream;
 fStream: TFileStream;
 fname: string;
begin
 {this part extracts the mp3 from exe}
 fname := ExtractFileDir(Paramstr(0))+'Intro.mp3';
 rStream := TResourceStream.Create(hInstance, 'Intro', RT_RCDATA) ;
 try
  fStream := TFileStream.Create(fname, fmCreate) ;
  try
   fStream.CopyFrom(rStream, 0) ;
  finally
   fStream.Free;
  end;
 finally
  rStream.Free;
 end;
 {this part plays the mp3}
 MediaPlayer1.Close;
 MediaPlayer1.FileName:=fname;
 MediaPlayer1.Open;
end;


Ovdje je to prikazano kako se radi pomoću MediaPlayer komponente, dok ti koristi mciSendString ako već ne koristiš Delphi ili C++ Builder.
Re: Pustanje muzike u console app. 26.01.2009. u 10:04 · pre 216 meseci #10
Opravdano je pitanje neophodnosti slaganja mp3 fajla na disk, jer objekat taj fajl (nadam se) ionako učitava u memoriju pre izvođenja. Ukoliko je biblioteka otvorena, mogla bi da se izmeni da preuzme fajl i na načine koji bi izbegli eksplicitno snimanje fajla bilo gde.
Potpis
Ipak se ++uje.
Prijavite se da biste odgovorili u ovoj temi.PrijavaRegistracija

Premeštanje teme