Autore Topic: lettura contemporanea di piu' file mp3  (Letto 1468 volte)

Offline allegfede

  • Gran Maestro dei Gamberi
  • *****
  • Post: 738
    • Mostra profilo
lettura contemporanea di piu' file mp3
« il: 29 Novembre 2012, 10:19:43 »
Salve ragazzoi.
Dopo anni di programmazione vb6 / vb.net, sono da mesi impegnato nella transizione verso il mondo linux e benche' interessato a python, la mia formazione vb mi ha fatto apprezzare largamente gambas.

ieri in 10 minuti ho installato l'ide e creato un player mp3 di test con gb.sdl

pero' la mia idea e' di sostituire un mio sistema di automazione radiofonica scritto in vb6 (incompatibile con win7) con qualcosa che giri sotto linux, ma ovviamente mi serve di suonare almeno 2 file mp3 contemporaneamente (dissolvenza incrociata tra due brani).

e' in progetto l'estensione di gb.sdl per poter istanziare piu' oggetti music?

esiste qualcosa d'alternativo?

grazie e happy coding
se corri, morirai stanco (motto degli sniper)

Offline vuott

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 11.723
  • Ne mors quidem nos iunget
    • Mostra profilo
Re: lettura contemporanea di piu' file mp3
« Risposta #1 il: 29 Novembre 2012, 10:34:11 »
e' in progetto l'estensione di gb.sdl per poter istanziare piu' oggetti music?
Bisognerebbe domandare nella Mailing List Internazionale al "padre" di Gambas, Benoît Minisini, se è previsto qualcosa al riguardo:
gambas@users.sourceforge.net
gambas-user@lists.sourceforge.net


esiste qualcosa d'alternativo?
Il linguaggio Gambas e, dunque, la progettazione in tale linguaggio sono ancora relativamente giovani :-X ; pertanto è probabile che non ci siano molti e complessi applicativi sulla gestione dei file audio. ...e se ci sono, non sono stati resi disponibili. :devil:
Ad ogni modo, come ho già detto in altra discussione, bisognerebbe compiere uno studio serio sulla gestione dei dati audio mediante le API di ALSA, al fine di saltare a pie' pari i limiti comunque presenti nel componente gb.sdl.sound di Gambas.
« Ultima modifica: 01 Dicembre 2012, 04:22:43 da vuott »
« Chiunque, non ricorrendo lo stato di necessità, nel proprio progetto Gambas fa uso delle istruzioni Shell o Exec, è punito con la sanzione pecuniaria da euro 20,00 a euro 60,00. »

Offline vuott

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 11.723
  • Ne mors quidem nos iunget
    • Mostra profilo
Re: lettura contemporanea di piu' file mp3
« Risposta #2 il: 29 Novembre 2012, 15:57:08 »
Ho visto nella M.L.I. che l'utente allegfede ha rimesso la questione a Minisini, ponendo come possibilità (che a me era sfuggita) quella di sfruttare le funzionalità di gstreamer.

Minisini gli ha indicato il componente di Gambas adatto per gstreamer. Riporto qui la sua risposta anche a beneficio degli altri:

« The gb.media component is the Gambas interface to gstreamer. It is not
complete, but powerful enough to implement a media player (see the
MediaPlayer example).

If you succeed in using it to play multiple sound files at the same
time, just tell me. At the moment I only played one multimedia file at a
time, and even don't know how to play several ones with gstreamer.

Regards,

--
Benoît Minisini
»
« Ultima modifica: 29 Novembre 2012, 16:11:33 da vuott »
« Chiunque, non ricorrendo lo stato di necessità, nel proprio progetto Gambas fa uso delle istruzioni Shell o Exec, è punito con la sanzione pecuniaria da euro 20,00 a euro 60,00. »

Offline allegfede

  • Gran Maestro dei Gamberi
  • *****
  • Post: 738
    • Mostra profilo
Re: lettura contemporanea di piu' file mp3
« Risposta #3 il: 29 Novembre 2012, 16:45:20 »
domani provero' a dare un'occhiata alla possibilita' gstreamer ... ma ancora non ho trovato il codice d'esempio del mediaplayer citato ...... a meno che' non sia proprio l'oggetto mediaplayer che e' nella libreria (di cui al limite analizzero' il codice :D)

ciauz
se corri, morirai stanco (motto degli sniper)

Offline vuott

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 11.723
  • Ne mors quidem nos iunget
    • Mostra profilo
Re: lettura contemporanea di piu' file mp3
« Risposta #4 il: 29 Novembre 2012, 16:56:11 »
ma ancora non ho trovato il codice d'esempio del mediaplayer citato ......


Il dimostrativo lo trovi aprendo l'IDE di Gambas; poi a sinistra clicca su "Esempi". Quindi nel gruppo "Multimedia" troverai il programma "MediaPlayer 3.3.0".


« Ultima modifica: 29 Novembre 2012, 23:12:32 da vuott »
« Chiunque, non ricorrendo lo stato di necessità, nel proprio progetto Gambas fa uso delle istruzioni Shell o Exec, è punito con la sanzione pecuniaria da euro 20,00 a euro 60,00. »

Offline allegfede

  • Gran Maestro dei Gamberi
  • *****
  • Post: 738
    • Mostra profilo
Re: lettura contemporanea di piu' file mp3
« Risposta #5 il: 30 Novembre 2012, 01:27:43 »
perfetto! chiarissimo.

una volta in vb con direct show di doveva creare un grafo per ogni elemento multimediale, poi si facenda andare in esecuzione il grafo desiderato.

era il s.o. che mixava (ora sara' pulsaudio).

con gstreamer dovrebbe andare piu' o meno uguale
se corri, morirai stanco (motto degli sniper)

Offline vuott

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 11.723
  • Ne mors quidem nos iunget
    • Mostra profilo
Re: lettura contemporanea di piu' file mp3
« Risposta #6 il: 30 Novembre 2012, 12:40:56 »

con gstreamer dovrebbe andare piu' o meno uguale

Facci sapere i risultati che ottieni: in futuro potrà essere utile anche ad altri amici utenti.  :coder:
« Chiunque, non ricorrendo lo stato di necessità, nel proprio progetto Gambas fa uso delle istruzioni Shell o Exec, è punito con la sanzione pecuniaria da euro 20,00 a euro 60,00. »

Offline allegfede

  • Gran Maestro dei Gamberi
  • *****
  • Post: 738
    • Mostra profilo
Re: lettura contemporanea di piu' file mp3
« Risposta #7 il: 30 Novembre 2012, 17:42:21 »
mhhh .... all'inizio non trovavo gambas media ...

root@PRSose:/home/allegfede# apt-cache search gambas3
gambas3 - Complete visual development environment for Gambas
gambas3-dev - Gambas compilation tools
gambas3-examples - Gambas examples
gambas3-gb-cairo - Gambas bindings for cairo
gambas3-gb-chart - Gambas charting component
gambas3-gb-compress - Gambas compression component
gambas3-gb-compress-bzlib2 - Gambas bzlib2 component
gambas3-gb-compress-zlib - Gambas zlib compression component
gambas3-gb-crypt - Gambas crypt encription component
gambas3-gb-db - Gambas database access common libraries
gambas3-gb-db-form - Gambas database bound controls
gambas3-gb-db-mysql - MySQL driver for the Gambas database component
gambas3-gb-db-odbc - ODBC driver for the Gambas database component
gambas3-gb-db-postgresql - PostgreSQL driver for the Gambas database component
gambas3-gb-db-sqlite2 - Gambas sqlite2 driver database component
gambas3-gb-db-sqlite3 - Gambas sqlite3 driver database component
gambas3-gb-dbus - Gambas bindings for DBUS
gambas3-gb-desktop - Gambas Portland project compatibility component
gambas3-gb-eval-highlight - Gambas syntax highlighting component
gambas3-gb-form - Gambas native form component
gambas3-gb-form-dialog - Gambas native mdi form component
gambas3-gb-form-mdi - Gambas native mdi form component
gambas3-gb-form-stock - Gambas form stock icons
gambas3-gb-gtk - Gambas gtk component
gambas3-gb-gui - Gambas graphical toolkit selector component
gambas3-gb-image - Gambas image effects component
gambas3-gb-image-effect - Gambas image effects component: effects
gambas3-gb-image-imlib - Gambas image effects component: IMLIB bindings
gambas3-gb-image-io - Gambas image effects component: I/O
gambas3-gb-mysql - Gambas MySQL component
gambas3-gb-net - Gambas networking component
gambas3-gb-net-curl - Gambas advanced networking component
gambas3-gb-net-smtp - Gambas component to use smtp protocol
gambas3-gb-opengl - OpenGL component for Gambas
gambas3-gb-opengl-glsl - OpenGL component for Gambas: GL Shading Language subcomponent
gambas3-gb-opengl-glu - Gambas opengl-glu component
gambas3-gb-option - Gambas option component
gambas3-gb-pcre - Gambas regexp component
gambas3-gb-pdf - Gambas pdf component
gambas3-gb-qt4 - Gambas Qt GUI component
gambas3-gb-qt4-ext - Gambas extended Qt GUI component
gambas3-gb-qt4-opengl - OpenGL with QT toolkit Gambas component
gambas3-gb-qt4-webkit - Gambas WebKit component
gambas3-gb-report - Gambas report component
gambas3-gb-sdl - Gambas SDL component
gambas3-gb-sdl-sound - Gambas SDL component
gambas3-gb-settings - Gambas utilities class
gambas3-gb-signal - Gambas OS signal library
gambas3-gb-v4l - Gambas video for Linux component
gambas3-gb-vb - Gambas to Visual Basic(tm) compatibility component
gambas3-gb-web - Gambas CGI for web applications component
gambas3-gb-xml - Gambas XML component
gambas3-gb-xml-rpc - Gambas RPC component
gambas3-gb-xml-xslt - Gambas XSLT component
gambas3-ide - Visual development environment for the Gambas programming language
gambas3-runtime - Gambas runtime interpreter
gambas3-script - Gambas scripter

ma una volta messo il repository unofficial:
sudo add-apt-repository ppa:nemh/gambas3

tutto e' stato risolto :D
« Ultima modifica: 30 Novembre 2012, 17:56:40 da allegfede »
se corri, morirai stanco (motto degli sniper)

Offline allegfede

  • Gran Maestro dei Gamberi
  • *****
  • Post: 738
    • Mostra profilo
Re: lettura contemporanea di piu' file mp3
« Risposta #8 il: 30 Novembre 2012, 18:48:35 »
abbastanza agevole per ora.

questo il codice (in allegato il progetto), ovviamente dovrete mettere label e pulsanti opportuni nonche' il riferiemnto a gb.media:



Private Player_A As MediaPlayer
Private Player_B As MediaPlayer


Public Sub _new()

End

Public Sub Form_Open()

End

Public Sub Button_play1_Click()
Player_A = New MediaPlayer As "MediaPlayer"

Player_A.URL = Media.URL(Label_file1.text)
Player_A.Play
 
End

Public Sub Button_File1_Click()

  Dialog.Title = "chose MP3 file"
  Dialog.Filter = ["*.mp3", "mp3 files", "*", "all files"]
  Dialog.Path = "."
  If Dialog.OpenFile() Then
    Return
    Else
      'Message.Info(Dialog.Path, "OK")     
      Label_file1.Text = Dialog.Path
     
  Endif

End

Public Sub Timer_posizione1_Timer()

' Label_position1.Text = Format(canzone1.Pos, "###.###")
'   If canzone1.Pos = 0 Then
'     Timer_posizione1.Stop
'   Endif

End

Public Sub Button_File2_Click()

  Dialog.Title = "chose MP3 file"
  Dialog.Filter = ["*.mp3", "mp3 files", "*", "all files"]
  Dialog.Path = "."
  If Dialog.OpenFile() Then
    Return
    Else
      'Message.Info(Dialog.Path, "OK")     
      Label_file2.Text = Dialog.Path
     
  Endif

End

Public Sub Button_play2_Click()
Player_B = New MediaPlayer As "MediaPlayer"
Player_B.URL = Media.URL(Label_file2.text)
Player_B.Play
 
End

se corri, morirai stanco (motto degli sniper)

Offline vuott

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 11.723
  • Ne mors quidem nos iunget
    • Mostra profilo
Re: lettura contemporanea di piu' file mp3
« Risposta #9 il: 01 Dicembre 2012, 04:05:16 »
Ho scaricato l'applicativo di prova.

Bravo, obiettivo raggiunto !
« Chiunque, non ricorrendo lo stato di necessità, nel proprio progetto Gambas fa uso delle istruzioni Shell o Exec, è punito con la sanzione pecuniaria da euro 20,00 a euro 60,00. »