GS-Zone

Sistema de MP3... Ir al Indice

Moderadores: Moderadores de Argentum, Especialistas de Argentum, Especialistas de Programación

8

Nota » 10 May 2011 23:51

Bueno, les traigo este sistema de Mp3 simple...

Empecemos, en el Cliente:
Proyecto>>Referencias>> Seleccionamos: 'ActiveMovie control type Library'


En el clsAudio buscamos:
  1. 'States wether sound effects are currently activated or not
  2. Dim sEffectsActivated As Boolean


Y Abajo agregamos:
  1. '**** Used By MP3 Playing. *****
  2. Dim IMC   As IMediaControl
  3. Dim IBA   As IBasicAudio
  4. Dim IME   As IMediaEvent
  5. Dim IMPos As IMediaPosition


Ahora al final del clsAudio agregan:
  1. Public Function MusicMP3Empty() As Boolean
  2. '**************************************
  3. '* Created by: Fredrik Alexandersson  *
  4. '* Modify Date: 20/5/2003             *
  5. '**************************************
  6.     On Error GoTo ErrorHandl
  7.    
  8.     If ObjPtr(IMC) > 0 Then
  9.         Call MusicMP3Stop
  10.     End If
  11.    
  12.     Set IBA = Nothing
  13.     Set IME = Nothing
  14.     Set IMPos = Nothing
  15.     Set IMC = Nothing
  16.    
  17.     MusicMP3Empty = True
  18.     Exit Function
  19.  
  20. ErrorHandl:
  21.     MusicMP3Empty = False
  22.     End
  23. End Function
  24.  
  25. ''
  26. ' Loads a new MP3 file.
  27. '
  28. ' @param    FilePath    The path to the file to be loaded.
  29. ' @return   True    If file was properly loaded and started playing, False otherwise.
  30.  
  31. Public Function MusicMP3Load(ByVal FilePath As String, Optional ByVal Volume As Long = 0, Optional ByVal Balance As Long = 0) As Boolean '**** Loads a MP3 *****
  32. '**************************************
  33. '* Created by: Fredrik Alexandersson  *
  34. '* Modify Date: 20/5/2003             *
  35. '**************************************
  36.     On Error GoTo ErrorHandl
  37.    
  38.     If Not FileExist(FilePath, vbArchive) Then Exit Function
  39.    
  40.     If Not MusicMP3Empty() = True Then GoTo ErrorHandl
  41.    
  42.     Set IMC = New FilgraphManager
  43.     Call IMC.RenderFile(FilePath)
  44.    
  45.     Set IBA = IMC
  46.     If Volume < -4000 Then Volume = -4000
  47.     IBA.Volume = Volume
  48.     If Balance > 5000 Then Balance = 5000
  49.     If Balance < -5000 Then Balance = -5000
  50.     IBA.Balance = Balance
  51.    
  52.     Set IME = IMC
  53.    
  54.     Set IMPos = IMC
  55.     If ObjPtr(IMPos) Then IMPos.Rate = 1#
  56.     IMPos.CurrentPosition = 0
  57.    
  58.     MusicMP3Load = True
  59.     Exit Function
  60.  
  61. ErrorHandl:
  62.     MusicMP3Load = False
  63. End Function
  64.  
  65. ''
  66. ' Plays a new MP3 file.
  67. '
  68. ' @param    FilePath    The path to the file to be loaded. If the path is null then play the loaded MP3.
  69. '
  70. ' @return   True    If file was properly loaded and started playing, False otherwise.
  71.  
  72. Public Function MusicMP3Play(Optional ByVal FilePath As String = "") As Boolean
  73. '**************************************
  74. '* Created by: Fredrik Alexandersson  *
  75. '* Modify Date: 20/5/2003             *
  76. '**************************************
  77.     On Error GoTo ErrorHandl
  78.    
  79.     If Not MusicActivated Then Exit Function
  80.    
  81.     If Not Music Then Exit Function
  82.    
  83.     If LenB(FilePath) > 0 Then
  84.         If Not MusicMP3Load(FilePath) Then Exit Function
  85.     Else
  86.         If IMC Is Nothing Then Exit Function
  87.     End If
  88.    
  89.     Call IMC.Run
  90.    
  91.     MusicMP3Play = True
  92.     Exit Function
  93.  
  94. ErrorHandl:
  95.     MusicMP3Play = False
  96. End Function
  97.  
  98. ''
  99. ' Check if the song need looping.
  100.  
  101. Public Sub MusicMP3GetLoop()
  102.     On Error GoTo ErrorHandl
  103.    
  104.     If IMPos.StopTime = IMPos.CurrentPosition Then
  105.         MusicMP3Stop
  106.         MusicMP3Play
  107.     End If
  108. ErrorHandl:
  109. End Sub
  110.  
  111. ''
  112. ' Stop a the current MP3 file.
  113. '
  114. ' @return   True    If file was properly stop, False otherwise.
  115.  
  116. Public Function MusicMP3Stop() As Boolean
  117. '**************************************
  118. '* Created by: Fredrik Alexandersson  *
  119. '* Modify Date: 20/5/2003             *
  120. '**************************************
  121.     On Error GoTo ErrorHandl
  122.    
  123. '    IMC.Stop
  124. '    IMPos.CurrentPosition = 0
  125.    
  126.     MusicMP3Stop = True
  127.     Exit Function
  128.  
  129. ErrorHandl:
  130.     MusicMP3Stop = False
  131. End Function
  132.  
  133. ''
  134. ' Pause a the current MP3 file.
  135. '
  136. ' @return   True    If file was properly pause, False otherwise.
  137.  
  138. Public Function MusicMP3Pause() As Boolean
  139. '***************************************************
  140. ' Created by: Juan Martín Sotuyo Dodero
  141. ' Modify Date: 25/6/2004
  142. '***************************************************
  143.     On Error GoTo ErrorHandl
  144.    
  145.     Call IMC.Pause
  146.    
  147.     MusicMP3Pause = True
  148.     Exit Function
  149.  
  150. ErrorHandl:
  151.     MusicMP3Pause = False
  152. End Function
  153.  
  154. ''
  155. ' Set the volume to the current MP3.
  156. '
  157. ' @param    SoundVolume The new volume to the current MP3.
  158. ' @return   True    If the volume was properly change, False otherwise.
  159.  
  160. Public Function MusicMP3VolumeSet(ByVal SoundVolume As Long) As Boolean
  161. '**************************************
  162. '* Created by: Fredrik Alexandersson  *
  163. '* Modify Date: 20/5/2003             *
  164. '**************************************
  165.     On Error GoTo ErrorHandl
  166.    
  167.     If SoundVolume > 0 Then SoundVolume = 0
  168.     If SoundVolume < -4000 Then SoundVolume = -4000
  169.    
  170.     IBA.Volume = SoundVolume
  171.  
  172.     MusicMP3VolumeSet = True
  173.     Exit Function
  174.  
  175. ErrorHandl:
  176.     MusicMP3VolumeSet = False
  177. End Function


Listo, con eso ya tienen un sistema de MP3 en su Cliente.


Preguntas:
¿Como hago para cargar el sonido?
Fácil:

  1. Call Audio.MusicMP3Play(App.path & "\MP3\1.mp3") 'El 1 lo cambian por el Numero del MP3


Ahi cargamos el mp3 1 de la carpeta mp3.




Espero que les sirba.




Adiós.

Director del Proyecto IndeX - AO
Mannakia escribió:Closed moderhipocradores , tema ya solucionado, jesus me ilumino en un sueño, y programamos junto, la verdad un genio, sabe lenguaje V** (V Multiply Multiply) que es sobre como programaron las primeras microcelulas.

Dunkan escribió:Chiters?, Pero esto no tenía la "Samke Security" ?

Imagen
Imagen
Programador
361
Dragon Ancestral [6]
Registrado: Años de membresíaAños de membresíaAños de membresíaAños de membresía
Mensajes: 4551
Aportes: 46
Premios: 2
Usuario superado (2)

Nota » 10 May 2011 23:53

Buen aporte dsp lo agrego a mi AO

Imagen
169
Oraculo [5]
Registrado: Años de membresíaAños de membresía
Mensajes: 2021
Aportes: 13
Premios: 1
Embajador (1)

Nota » 11 May 2011 00:24

Está mal programado eso. Para que entiendas como es la mejor forma de programarlo, fijate en el parra engine :P

Vicinity of obscenity
525
Legendario Inmortal [2]
Registrado: 5 Años de membresía!
Ubicación: España
Mensajes: 5580
Aportes: 50
Premios: 3
Mister Programador FreeForAll (3)

Nota » 11 May 2011 09:42

•Parra escribió:Está mal programado eso. Para que entiendas como es la mejor forma de programarlo, fijate en el parra engine :P

Lo hice así a proposito. Me saltaban errores y sabes las ganas que tengo de arreglarlo? XD...

Lo hice a lo lingera y listo.



Suerte
 ! Nota del moderador Damian :
Además ya está aportado, esto sería un plus.

Director del Proyecto IndeX - AO
Mannakia escribió:Closed moderhipocradores , tema ya solucionado, jesus me ilumino en un sueño, y programamos junto, la verdad un genio, sabe lenguaje V** (V Multiply Multiply) que es sobre como programaron las primeras microcelulas.

Dunkan escribió:Chiters?, Pero esto no tenía la "Samke Security" ?

Imagen
Imagen
Programador
361
Dragon Ancestral [6]
Registrado: Años de membresíaAños de membresíaAños de membresíaAños de membresía
Mensajes: 4551
Aportes: 46
Premios: 2
Usuario superado (2)

Nota » 11 May 2011 09:53

Lord Fers escribió:
•Parra escribió:Está mal programado eso. Para que entiendas como es la mejor forma de programarlo, fijate en el parra engine :P

Lo hice así a proposito. Me saltaban errores y sabes las ganas que tengo de arreglarlo? XD...

Lo hice a lo lingera y listo.



Suerte

Bueno lo digo porque creo que no entendiste la idea de las clases, lo mejor seria hacer tu propia clase que reproduzca mp3, como el buffer, para lograr que puedan sonar diferentes mp3 a la vez, y exprimir al máximo este codigo (;

Solo lo decia por eso, nada mas, no te lo tomes a mal.

Vicinity of obscenity
525
Legendario Inmortal [2]
Registrado: 5 Años de membresía!
Ubicación: España
Mensajes: 5580
Aportes: 50
Premios: 3
Mister Programador FreeForAll (3)

Nota » 11 May 2011 10:03

•Parra escribió:
Lord Fers escribió:
•Parra escribió:Está mal programado eso. Para que entiendas como es la mejor forma de programarlo, fijate en el parra engine :P

Lo hice así a proposito. Me saltaban errores y sabes las ganas que tengo de arreglarlo? XD...

Lo hice a lo lingera y listo.



Suerte

Bueno lo digo porque creo que no entendiste la idea de las clases, lo mejor seria hacer tu propia clase que reproduzca mp3, como el buffer, para lograr que puedan sonar diferentes mp3 a la vez, y exprimir al máximo este codigo (;

Solo lo decia por eso, nada mas, no te lo tomes a mal.

Sisi, en eso soy consiente. Es que si reproduces muchos mp3, se escucha feo xD...

Ayer me dijo mateo que no lo programe así, me dijo algo parecido a lo tuyo :P...




Adiós.

Director del Proyecto IndeX - AO
Mannakia escribió:Closed moderhipocradores , tema ya solucionado, jesus me ilumino en un sueño, y programamos junto, la verdad un genio, sabe lenguaje V** (V Multiply Multiply) que es sobre como programaron las primeras microcelulas.

Dunkan escribió:Chiters?, Pero esto no tenía la "Samke Security" ?

Imagen
Imagen
Programador
361
Dragon Ancestral [6]
Registrado: Años de membresíaAños de membresíaAños de membresíaAños de membresía
Mensajes: 4551
Aportes: 46
Premios: 2
Usuario superado (2)

Nota » 14 May 2011 22:21

Este sistema lo tengo mas visto los capitulos de los simpsons.
El sistema ya esta aportado como 50.000 veces aproximadamente.
Es lo mismo para todas las versiones.
Esta programado en 0.13.
Este sistema utiliza la libreria quartz, asi que si no la tienen va a dar algunos errores ;).
Como dice parra este sistema una basura.
No tiene ni loop, es decir que cuando termine la musica no va a sonar nada mas.

Y una cosita mas, no entendi eso que querias decir con "Hacer", "programe". Cuando este codigo tiene mas años que matusalem, lo usaba yo en WAO 1.0 creo xD

Nota » 15 May 2011 00:05

Lorwik escribió:Este sistema lo tengo mas visto los capitulos de los simpsons.
El sistema ya esta aportado como 50.000 veces aproximadamente.
Es lo mismo para todas las versiones.
Esta programado en 0.13.
Este sistema utiliza la libreria quartz, asi que si no la tienen va a dar algunos errores ;).
Como dice parra este sistema una basura.
No tiene ni loop, es decir que cuando termine la musica no va a sonar nada mas.

Y una cosita mas, no entendi eso que querias decir con "Hacer", "programe". Cuando este codigo tiene mas años que matusalem, lo usaba yo en WAO 1.0 creo xD

Jaja es verdad xD... Pero bue :P, ya encontre la forma de hacer el bucle. Despues cuando me conecte de vuelta, te digo mas o menos como lo podes hacer...

Aunque lo tengo que buscar, porque apartir de esta semana voy a tener mi ordenador de escritorio en mi casa :D...



Adios.
Última edición por Lord Fers el 15 May 2011 00:06, editado 1 vez en total

Director del Proyecto IndeX - AO
Mannakia escribió:Closed moderhipocradores , tema ya solucionado, jesus me ilumino en un sueño, y programamos junto, la verdad un genio, sabe lenguaje V** (V Multiply Multiply) que es sobre como programaron las primeras microcelulas.

Dunkan escribió:Chiters?, Pero esto no tenía la "Samke Security" ?

Imagen
Imagen
Programador
361
Dragon Ancestral [6]
Registrado: Años de membresíaAños de membresíaAños de membresíaAños de membresía
Mensajes: 4551
Aportes: 46
Premios: 2
Usuario superado (2)


Volver a AO 0.12.x

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 0 invitados