Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Un fulmine sulla scrivania, Corsair Sabre v2 Pro ridefinisce la velocità nel gaming
Un fulmine sulla scrivania, Corsair Sabre v2 Pro ridefinisce la velocità nel gaming
Questo mouse ultraleggero, con soli 36 grammi di peso, è stato concepito per offrire un'esperienza di gioco di alto livello ai professionisti degli FPS, grazie al polling rate a 8.000 Hz e a un sensore ottico da 33.000 DPI. La recensione esplora ogni dettaglio di questo dispositivo di gioco, dalla sua agilità estrema alle specifiche tecniche che lo pongono un passo avanti
Nokia Innovation Day 2025: l’Europa ha bisogno di campioni nelle telecomunicazioni
Nokia Innovation Day 2025: l’Europa ha bisogno di campioni nelle telecomunicazioni
Dal richiamo di Enrico Letta alla necessità di completare il mercato unico entro il 2028 alla visione di Nokia sul ruolo dell’IA e delle reti intelligenti, il Nokia Innovation Day 2025 ha intrecciato geopolitica e tecnologia, mostrando a Vimercate come la ricerca italiana contribuisca alle sfide globali delle telecomunicazioni
Sottile, leggero e dall'autonomia WOW: OPPO Reno14 F conquista con stile e sostanza
Sottile, leggero e dall'autonomia WOW: OPPO Reno14 F conquista con stile e sostanza
OPPO Reno14 F 5G si propone come smartphone di fascia media con caratteristiche equilibrate. Il device monta processore Qualcomm Snapdragon 6 Gen 1, display AMOLED da 6,57 pollici a 120Hz, tripla fotocamera posteriore con sensore principale da 50MP e generosa batteria da 6000mAh con ricarica rapida a 45W. Si posiziona come alternativa accessibile nella gamma Reno14, proponendo un design curato e tutto quello che serve per un uso senza troppe preoccupazioni.
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 17-11-2005, 11:46   #1
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
BUG AUDIO !!! Forse più dii uno...

Provate questo codice:
Codice:
package it.diamonds;

import it.diamonds.engine.audio.*;


public class ProvaSound
{

    public static void SleepOneSecond()
    {
        try
        {
            Thread.sleep(1000);
        }
        catch(InterruptedException e)
        {
            /* Nothing to do here */
        }
    }
   
    /**
     * @param args
     */
    public static void main(String[] args)
    {
        Audio audio = new Audio();
        
        Sound sound1 = new Sound("diamond");
        Sound sound2 = new Sound("diamond");
        Sound sound3 = new Sound("diamond");
        
        sound1.play();
        
        SleepOneSecond();
        
        sound2.play();

        SleepOneSecond();
        
        sound3.play();

        SleepOneSecond();
        
        sound2.play();

        SleepOneSecond();
        
        sound1.play();

        SleepOneSecond();
        
    }
Cosa notate ? A me sound3 viene riprodotto più forte degli altri... Se aggiungete un altro Sound, l'ultimo viene sempre riprodotto più forte !!!

Un altro bug... In pratica se il suono viene riprodotto una prima volta, la seconda non viene riprodotto...
In particolare mi riferisco al suono della gemma che tocca il fondo...
Codice:
    public void play()
    {
        if(!testing)
        {
            AL10.alSourcePlay(source);
        }
        wasPlayed = true;
    }
Il programma arriva ad eseguire correttamente questa funzione, ma AL10.alSourcePlay(source) non produce alcun suono (il suono è stato istanziato in GemFactory sia per la prima che per la seconda gemma)...
Potete vederlo facilmente facendo arrivare in fondo (in colonne diverse) due gemme...
Allegati
File Type: txt ProvaSound.txt (939 Bytes, 3 visite)
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 17-11-2005, 12:44   #2
^TiGeRShArK^
Senior Member
 
L'Avatar di ^TiGeRShArK^
 
Iscritto dal: Jul 2002
Città: Reggio Calabria -> London
Messaggi: 12112
ehm...
a me capita che se faccio cadere la gemma la prima non produce il suono mentre la seconda si....
__________________
^TiGeRShArK^ è offline   Rispondi citando il messaggio o parte di esso
Old 17-11-2005, 12:52   #3
fek
Senior Member
 
L'Avatar di fek
 
Iscritto dal: Oct 2002
Città: San Jose, California
Messaggi: 11794
Hmmm... e' un problema della libreria?
O piu' facilmente stiamo facendo noi qualcosa di sbagliato?

Nell'ordine inverso: prima assicuriamoci di pilotare la libreria in maniera corretta e poi, quando siamo sicuri che il problema non e' nostro, ricontrolliamo che stiamo pilotando la libreria in maniera corretta.

E poi, concludiamo che il problema e' loro.
fek è offline   Rispondi citando il messaggio o parte di esso
Old 17-11-2005, 14:07   #4
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
Quote:
Originariamente inviato da ^TiGeRShArK^
ehm...
a me capita che se faccio cadere la gemma la prima non produce il suono mentre la seconda si....
Puoi testare il codice sopra ?
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 17-11-2005, 14:12   #5
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
Ho risolto il problema, ma non ho capito il perchè si presentava...
Modificando GemFactory da così:
Codice:
package it.diamonds;

import it.diamonds.engine.audio.Sound;

public class GemFactory
{
    public GemFactory()
    {

    }
    
    public Gem create()
    {
        Gem gem = new Gem("diamond");
        gem.setCollisionSound(new Sound("diamond"));
        return gem;
    }
}
a così:
Codice:
package it.diamonds;

import it.diamonds.engine.audio.Sound;

public class GemFactory
{
    Sound sound;

    public GemFactory()
    {
        sound = new Sound("diamond");
    }
    
    public Gem create()
    {
        Gem gem = new Gem("diamond");
        gem.setCollisionSound(sound);
        return gem;
    }
}
il bug nel gioco è sparito...
Comuqnue il problema di fondo rimane... Come mai la prima soluzione non funzionava ?

Ultima modifica di cionci : 17-11-2005 alle 14:17.
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 17-11-2005, 14:28   #6
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
Sono riuscito a riprodurre il problema (ovvviamente con la prima versione di GemFactory):
Codice:
   public static void main(String[] args)
    {
        Audio audio = new Audio();
        
        GemFactory gemFactory = new GemFactory();
        
        Gem gem = gemFactory.create();       
        gem.drop();
        
        SleepOneSecond();
        
        gem = gemFactory.create();       
        gem.drop();

        SleepOneSecond();
        
        gem = gemFactory.create();       
        gem.drop();

        SleepOneSecond();
        
        gem = gemFactory.create();       
        gem.drop();

        SleepOneSecond();
        
        gem = gemFactory.create();       
        gem.drop();

        SleepOneSecond();
        
    }
Ho fatto il commit di GemFactory corretta per eliminare il problema, conviene riportarla alla versione con il problema ? Che dite ?
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 17-11-2005, 14:40   #7
fek
Senior Member
 
L'Avatar di fek
 
Iscritto dal: Oct 2002
Città: San Jose, California
Messaggi: 11794
C:\cruisecontrol-2.3.0.1\work\checkout\diamonds\trunk\src\it\diamonds\GemFactory.java:7:11: Variable 'sound' must be private and have accessor methods.

Lanciate lo script di build sempre e comunque prima del commit.
fek è offline   Rispondi citando il messaggio o parte di esso
Old 17-11-2005, 14:59   #8
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
Hai ragione
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 17-11-2005, 15:16   #9
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
E che kaiser... Devo riportare il tutto alla prima versione... Altrimenti nella copia di GemFactory all'interno di GemFactoryForTesting si cerca di allocare un Sound e di conseguenza non essendo l'audio inizializzato falliscono praticaemnte tutti i test...
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 17-11-2005, 15:19   #10
fek
Senior Member
 
L'Avatar di fek
 
Iscritto dal: Oct 2002
Città: San Jose, California
Messaggi: 11794
Quote:
Originariamente inviato da cionci
E che kaiser... Devo riportare il tutto alla prima versione... Altrimenti nella copia di GemFactory all'interno di GemFactoryForTesting si cerca di allocare un Sound e di conseguenza non essendo l'audio inizializzato falliscono praticaemnte tutti i test...
Scrivi del codice per creare Sound di testing all'interno di GemFactoryForTesting.
fek è offline   Rispondi citando il messaggio o parte di esso
Old 17-11-2005, 15:20   #11
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
Ho fatto così, altrimenti la copia di GemFactory in GemFactoryForTesting inizializzava un sound e creava un'eccezione...ovviamente è passibile di refactoring...
Codice:
package it.diamonds;

import it.diamonds.engine.audio.Sound;

public class GemFactory
{    
    private Sound sound = null;
    
    public GemFactory()
    {

    }
    
    public Gem create()
    {
        if(sound == null)
        {
            sound = new Sound("diamond");            
        }
        
        Gem gem = new Gem("diamond");
        gem.setCollisionSound(sound);
        
        return gem;
    }
}
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 17-11-2005, 15:21   #12
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
Quote:
Originariamente inviato da fek
Scrivi del codice per creare Sound di testing all'interno di GemFactoryForTesting.
Non risolverei perchè comunque viene chiamato prima il costruttore della superclasse...
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 17-11-2005, 15:26   #13
fek
Senior Member
 
L'Avatar di fek
 
Iscritto dal: Oct 2002
Città: San Jose, California
Messaggi: 11794
Quote:
Originariamente inviato da cionci
Ho fatto così, altrimenti la copia di GemFactory in GemFactoryForTesting inizializzava un sound e creava un'eccezione...ovviamente è passibile di refactoring...
In che senso "la copia di GemFactory in GemFactoryForTesting"?

Puoi postare il codice di GemFactoryForTesting?
fek è offline   Rispondi citando il messaggio o parte di esso
Old 17-11-2005, 15:27   #14
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
Codice:
package it.diamonds;

public class GemFactoryForTesting extends GemFactory
{
    public GemFactoryForTesting()
    {
        
    }
    
    public Gem create()
    {
        return Gem.createForTesting();
    }
}
La "copia" nel senso che essendo GemFactory la classe base, viene comunque richiamato il costruttore di GemFactory per ogni nuova istanza di GemFactoryForTesting...
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 17-11-2005, 17:08   #15
fek
Senior Member
 
L'Avatar di fek
 
Iscritto dal: Oct 2002
Città: San Jose, California
Messaggi: 11794
Quote:
Originariamente inviato da cionci
Codice:
package it.diamonds;

public class GemFactoryForTesting extends GemFactory
{
    public GemFactoryForTesting()
    {
        
    }
    
    public Gem create()
    {
        return Gem.createForTesting();
    }
}
La "copia" nel senso che essendo GemFactory la classe base, viene comunque richiamato il costruttore di GemFactory per ogni nuova istanza di GemFactoryForTesting...
Malissimo. Vedi che succede se non lavori con le interfacce e fai ereditarieta' per condividere il codice?
Eredita strettamente sempre e solo per modellare relazioni "is a" che soddisfano il principio di sostituzione.

GemFactory dev'essere solo un'interfaccia, con due implementazioni:
- GameGemFactory
- GemFactoryForTesting

E non c'e' bisogno di alcun hack, perche' il tuo problema sparisce da solo.
fek è offline   Rispondi citando il messaggio o parte di esso
Old 17-11-2005, 18:15   #16
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
Ehm...io te lo avevo chiesto su MSN se dovevo fare l'interfaccia... Probabilmente ho capito male quello che mi hai detto
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 17-11-2005, 18:39   #17
Vifani
Senior Member
 
Iscritto dal: Apr 2001
Città: Bari
Messaggi: 2776
Comunque è necessario fare anche un discorso relativo all'hardware. Cioè, così come per l'OpenGL, anche la scheda audio del PC deve supportare OpenAL e a dire la verità al riguardo non sono molto esperto. In ogni caso, prima di parlare di bug della libreria (decisamente improbabile visto che OpenAL è usato in Quake 4, UT2004 ed in innumerevoli titoli), sarebbe il caso di verificare il funzionamento di OpenAL con il codice dei tutorial che, teoricamente, dovrebbe essere corretto.
__________________
Raffaele Fanizzi
My Personal Web Site
Membro Jedi del HWU Star Wars Clan
Vifani è offline   Rispondi citando il messaggio o parte di esso
Old 17-11-2005, 18:40   #18
fek
Senior Member
 
L'Avatar di fek
 
Iscritto dal: Oct 2002
Città: San Jose, California
Messaggi: 11794
Quote:
Originariamente inviato da cionci
Ehm...io te lo avevo chiesto su MSN se dovevo fare l'interfaccia... Probabilmente ho capito male quello che mi hai detto
Hai ragione tu, non ero stato chiaro io in MSN
fek è offline   Rispondi citando il messaggio o parte di esso
Old 17-11-2005, 18:44   #19
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
Quote:
Originariamente inviato da Vifani
Comunque è necessario fare anche un discorso relativo all'hardware. Cioè, così come per l'OpenGL, anche la scheda audio del PC deve supportare OpenAL e a dire la verità al riguardo non sono molto esperto. In ogni caso, prima di parlare di bug della libreria (decisamente improbabile visto che OpenAL è usato in Quake 4, UT2004 ed in innumerevoli titoli), sarebbe il caso di verificare il funzionamento di OpenAL con il codice dei tutorial che, teoricamente, dovrebbe essere corretto.
Per ora mi basterebbe che qualcuno testasse il mio codice, magari con una scheda audio decente (io ho una ALC850 integrata)
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 17-11-2005, 18:45   #20
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
Allora si fa così... Per ora lascio il codice con il bug (aggiorno comunque aggiungendo l'interfaccia)...così almeno tutti lo possono testare...
cionci è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Un fulmine sulla scrivania, Corsair Sabre v2 Pro ridefinisce la velocità nel gaming Un fulmine sulla scrivania, Corsair Sabre v2 Pro...
Nokia Innovation Day 2025: l’Europa ha bisogno di campioni nelle telecomunicazioni Nokia Innovation Day 2025: l’Europa ha bisogno d...
Sottile, leggero e dall'autonomia WOW: OPPO Reno14 F conquista con stile e sostanza Sottile, leggero e dall'autonomia WOW: OPPO Reno...
Destiny Rising: quando un gioco mobile supera il gioco originale Destiny Rising: quando un gioco mobile supera il...
Plaud Note Pro convince per qualità e integrazione, ma l’abbonamento resta un ostacolo Plaud Note Pro convince per qualità e int...
SpaceX guarda ai primi voli orbitali del...
Il prototipo del razzo spaziale riutiliz...
Blue Origin mostra uno spettacolare vide...
Roscosmos: la capsula Bion-M2 è r...
ASUS sperimenta GPU senza connettori di ...
La Cina conquisterà lo spazio ent...
Samsung ha un nuovo entry level: debutta...
Caos nei cieli europei: attacco informat...
Volkswagen ferma la produzione di ID.Buz...
Super sconti del weekend Amazon: 5 novit...
Dreame non si ferma più: tra le n...
Samsung Galaxy Buds3 FE a meno di 95€ su...
Praticamente regalate: 135€ per le Squie...
Si rinnovano i coupon nascosti di settem...
Amazon sconta i componenti: occasioni d'...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 05:59.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Served by www3v