buenas...
ando con ideas locas... jajaj quiero hacer mucho con poco conocimiento
quiero crear una clase que administre sonidos,
clase sonido: propiedades: ruta as string, silencio as boolean, nombre tipo string
clase bibliotecasonido : métodos, add o crear, eliminar, find, escuchar, modificar
que tul hee??
he probado algunas cosas pero hasta ahora me he enrredado en el planteo
con este quiero tener el control de si se pueden escuchar todos los sonidos o no, o personalizar que sonido escuchar y cual no, con la propiedad silencio.
saludos.
Programar Un Componente Biblioteca De Sonidos!!!
Objetivo: Re: Programar Un Componente Biblioteca De Sonidos!!!
en _new se crearia un archivo settings
en el metodo add o agregar sonido se guardar los datos del sonido en settings
[nombresonido]
Nombre=nombre sonido
Ruta= ruta sonido
Silencio= estado si se puede escuchar o no true o false
método Load o cargar en la clase principal
al cargar la aplicación se lee el archivo settings y se crean los sonidos prontos para escuchar modificar o eliminar
y cargaría los sonidos creados con los datos de settings en un array de clases sonido
en el metodo add o agregar sonido se guardar los datos del sonido en settings
[nombresonido]
Nombre=nombre sonido
Ruta= ruta sonido
Silencio= estado si se puede escuchar o no true o false
método Load o cargar en la clase principal
al cargar la aplicación se lee el archivo settings y se crean los sonidos prontos para escuchar modificar o eliminar
y cargaría los sonidos creados con los datos de settings en un array de clases sonido
Objetivo: Re: Programar Un Componente Biblioteca De Sonidos!!!
estoy experimentando con esto al parecer anda, aunque hay que pulirlo muchísimo todavía, es un croquis aun jajajaja
comenten capos ajjajajaj
comenten capos ajjajajaj
' gambas class file
Export
Property Sonidos As String[]
Property RutaRegistro As String
Property Read ListaSonidos As String[]
Public Const SI As String = "SI"
Public Const NO As String = "NO"
Private Const SEPARADOR As String = ":"
Private $Sonidos As String[]
Private $RutaRegistro As String
Private $ListaSonidos As String[]
Public Sub _new(ruta As String, nombre As String)
Dim RutaCompleta As String
RutaCompleta = ruta &/ nombre & ".bs"
If Exist(RutaCompleta) = False Then
File.Save(RutaCompleta, "# Biblioteca de sonidos creada: " & Now & gb.NewLine)
Endif
$RutaRegistro = RutaCompleta
End
Public Sub Escuchar(nombre As String, Optional forzar As Boolean)
Dim Archivo As File
Dim Parrafo As String
Dim XNombre As String
Dim Separado As String[]
Dim XSonido As Sound
Dim Escuchar As Boolean
Archivo = Open $RutaRegistro For Read
While Not Eof(Archivo)
Separado = New String[]
Line Input #Archivo, Parrafo
If Left(Parrafo, 1) = "#" Then Continue
Separado = Split(Parrafo, SEPARADOR)
If Separado[0] = nombre Then
Escuchar = True
Break
Else
Escuchar = False
Endif
Wend
If Escuchar Then
XSonido = Sound.Load(Separado[1])
XSonido.Play
Endif
Archivo.Close
End
Public Sub AgregarSonido(nombre As String, ruta As String, escuchar As String) As Boolean
Dim XSonido As String
Dim Archivo As File
If TipoSonidoOK(ruta) = False Then Return
If SonidoExiste(nombre) Then
Message.Warning("El nombre: " & nombre & " ya existe")
Return True
Endif
XSonido = nombre & SEPARADOR & ruta & SEPARADOR & escuchar
Print XSonido
Archivo = Open $RutaRegistro For Write Append
Print #Archivo, XSonido
Archivo.Close
End
Private Function TipoSonidoOK(ruta As String) As Boolean
Dim XSonido As Sound
Dim TipoPermitido As Boolean
Print File.Ext(ruta)
Select Case File.Ext(ruta)
Case "ogg"
TipoPermitido = True
Case "wav"
TipoPermitido = True
End Select
If TipoPermitido = False Then
Message.Error("Tipo de archivo no admitido")
Return False
Else
Return True
Endif
End
Private Function NombresSonidos() As String[]
Dim Archivo As File
Dim Parrafo As String
Dim XNombre As String
Dim Separado As String[]
Dim Lista As New String[]
Archivo = Open $RutaRegistro For Read
While Not Eof(Archivo)
Separado = New String[]
Line Input #Archivo, Parrafo
If Left(Parrafo, 1) = "#" Then Continue
Separado = Split(Parrafo, SEPARADOR)
Lista.Add(Separado[0])
Wend
Archivo.Close
Return Lista
End
Private Function SonidoExiste(nombre As String) As Boolean
Dim Archivo As File
Dim Parrafo As String
Dim XNombre As String
Dim Separado As String[]
Archivo = Open $RutaRegistro For Read
While Not Eof(Archivo)
Separado = New String[]
Line Input #Archivo, Parrafo
If Left(Parrafo, 1) = "#" Then Continue
Separado = Split(Parrafo, SEPARADOR)
If Separado[0] = nombre Then
Return True
Break
Endif
Wend
Archivo.Close
End
Private Function Sonidos_Read() As String[]
Return $Sonidos
End
Private Sub Sonidos_Write(Value As String[])
$Sonidos = Value
End
Private Function RutaRegistro_Read() As String
Return $RutaRegistro
End
Private Sub RutaRegistro_Write(Value As String)
$RutaRegistro = Value
End
Private Function ListaSonidos_Read() As String[]
$ListaSonidos = NombresSonidos()
Return $ListaSonidos
End
Export
Property Sonidos As String[]
Property RutaRegistro As String
Property Read ListaSonidos As String[]
Public Const SI As String = "SI"
Public Const NO As String = "NO"
Private Const SEPARADOR As String = ":"
Private $Sonidos As String[]
Private $RutaRegistro As String
Private $ListaSonidos As String[]
Public Sub _new(ruta As String, nombre As String)
Dim RutaCompleta As String
RutaCompleta = ruta &/ nombre & ".bs"
If Exist(RutaCompleta) = False Then
File.Save(RutaCompleta, "# Biblioteca de sonidos creada: " & Now & gb.NewLine)
Endif
$RutaRegistro = RutaCompleta
End
Public Sub Escuchar(nombre As String, Optional forzar As Boolean)
Dim Archivo As File
Dim Parrafo As String
Dim XNombre As String
Dim Separado As String[]
Dim XSonido As Sound
Dim Escuchar As Boolean
Archivo = Open $RutaRegistro For Read
While Not Eof(Archivo)
Separado = New String[]
Line Input #Archivo, Parrafo
If Left(Parrafo, 1) = "#" Then Continue
Separado = Split(Parrafo, SEPARADOR)
If Separado[0] = nombre Then
Escuchar = True
Break
Else
Escuchar = False
Endif
Wend
If Escuchar Then
XSonido = Sound.Load(Separado[1])
XSonido.Play
Endif
Archivo.Close
End
Public Sub AgregarSonido(nombre As String, ruta As String, escuchar As String) As Boolean
Dim XSonido As String
Dim Archivo As File
If TipoSonidoOK(ruta) = False Then Return
If SonidoExiste(nombre) Then
Message.Warning("El nombre: " & nombre & " ya existe")
Return True
Endif
XSonido = nombre & SEPARADOR & ruta & SEPARADOR & escuchar
Print XSonido
Archivo = Open $RutaRegistro For Write Append
Print #Archivo, XSonido
Archivo.Close
End
Private Function TipoSonidoOK(ruta As String) As Boolean
Dim XSonido As Sound
Dim TipoPermitido As Boolean
Print File.Ext(ruta)
Select Case File.Ext(ruta)
Case "ogg"
TipoPermitido = True
Case "wav"
TipoPermitido = True
End Select
If TipoPermitido = False Then
Message.Error("Tipo de archivo no admitido")
Return False
Else
Return True
Endif
End
Private Function NombresSonidos() As String[]
Dim Archivo As File
Dim Parrafo As String
Dim XNombre As String
Dim Separado As String[]
Dim Lista As New String[]
Archivo = Open $RutaRegistro For Read
While Not Eof(Archivo)
Separado = New String[]
Line Input #Archivo, Parrafo
If Left(Parrafo, 1) = "#" Then Continue
Separado = Split(Parrafo, SEPARADOR)
Lista.Add(Separado[0])
Wend
Archivo.Close
Return Lista
End
Private Function SonidoExiste(nombre As String) As Boolean
Dim Archivo As File
Dim Parrafo As String
Dim XNombre As String
Dim Separado As String[]
Archivo = Open $RutaRegistro For Read
While Not Eof(Archivo)
Separado = New String[]
Line Input #Archivo, Parrafo
If Left(Parrafo, 1) = "#" Then Continue
Separado = Split(Parrafo, SEPARADOR)
If Separado[0] = nombre Then
Return True
Break
Endif
Wend
Archivo.Close
End
Private Function Sonidos_Read() As String[]
Return $Sonidos
End
Private Sub Sonidos_Write(Value As String[])
$Sonidos = Value
End
Private Function RutaRegistro_Read() As String
Return $RutaRegistro
End
Private Sub RutaRegistro_Write(Value As String)
$RutaRegistro = Value
End
Private Function ListaSonidos_Read() As String[]
$ListaSonidos = NombresSonidos()
Return $ListaSonidos
End
Página 1 de 1
No puede crear mensajesNo puede responder temas
No puede editar sus mensajes
No puede borrar sus mensajes
No puede votar en encuestas
No puede adjuntar archivos
Puede descargar archivos
No puede publicar eventos en el calendario
Está utilizando la versión (Lo-Fi). Para ver la versión completa del foro, haga clic aquí.
Powered by Icy Phoenix based on phpBB
Design by DiDiDaDo
Página generada en:: 0.1813s (PHP: 34% SQL: 66%)
Consultas SQL: 23 - Debug off - GZIP Activado