Avatar billede mummikiks Nybegynder
02. marts 2005 - 17:56 Der er 3 kommentarer og
1 løsning

J2me - samme inputstream som outputstream

Hej

Jeg er ved at lave et program der giver mulighed for at optage fra microphonen  på min mobiltelefon...Optagelsen skal ikke være længere en 5 sekunder..Herefter skal det være muligt at afspille det igen...


Sådan optager jeg:

p = Manager.createPlayer("capture://audio?encoding=pcm&signed=unsigned");
            System.err.println("inde i record");
        p.realize();
        rc = (RecordControl)p.getControl("RecordControl");
        output = new ByteArrayOutputStream();
        rc.setRecordStream(output);
        rc.startRecord();
        p.start();
        Thread.currentThread().sleep(5000);
        p.stop();
        output.close();
        gui.setDisplay("Jeg er i record");
            int size = output.size();
            gui.setDisplay("st�rrelsen er" + size);

    } catch (Exception ex) {
            System.err.println("How" + ex.toString());
    }
    }
}

Sådan afspilller jeg:

      InputStream input = ??????
        Player player = Manager.createPlayer(input, "audio/x-wav");
        player.prefetch();
        player.start();
        }
    catch (Exception ex)
    {
        System.err.println("Fejl i play" + ex.toString());
    }
    }

Det er måske lidt svært at gennemskue hvordan min kode er sat op...Der er lavet en klasse til optage og en til afspil...
Mit enkelte spørgsmål er så hvordan jeg får:
"InputStream input" til at være outputstream...
Personligt vil jeg bare have skrevet:
InputStream input = output;
Selvfølgelig med den nødvendige reference til den anden klasse...Dette virker ikke...

Håber nogen kan fortælle mig hvordan jeg gør det...
Avatar billede mollevp Nybegynder
02. marts 2005 - 20:20 #1
Hej gunzip..

Jeg vil forslå dig følgende:

Opret følgende public variable: byte[] recorded; i din recorder...
Efter optagelsen gemmer du dit output på følgende måde:

recorded = output.toByteArray();

I din player kan du så lave dit byte array om til en InputStream på følgende måde:

InputStream input = new ByteArrayInputStream(recorded);

Håber du kan følge bruge det til noget...

MVH Morten
Avatar billede mummikiks Nybegynder
02. marts 2005 - 20:59 #2
Hej dll...
Tror jeg kan bruge dit svar...læg et svar og jeg vil belønne din indsats.
Avatar billede mollevp Nybegynder
02. marts 2005 - 21:42 #3
svar :)
Avatar billede mummikiks Nybegynder
02. marts 2005 - 21:54 #4
Du skal virkelig have tak for hjælpen...er vildt imponeret over dit store indblik i programmeringssproget java, samt dets funktionaliteter...Virkelig imponeret...wauv
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester