IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Android Discussion :

Enregistrement son par visualizer


Sujet :

Android

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Webmaster
    Inscrit en
    Mars 2014
    Messages
    66
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Mars 2014
    Messages : 66
    Par défaut Enregistrement son par visualizer
    Bonjour à tous,

    je cherche à enregistrer le son émis par le téléphone. Mon but est de lancer un mediaplayer
    et que mon appli surajoute des sons (avec un soundpool). Mais là je n'arrive pas à capturer
    le son du mediaplayer via mon appli. J'ai bien un fichier ("audiofichier") qui est crée avec une taille, si je me souviens bien, qui est fonction de la durée sur laquelle je réappui sur un icone mais quand je joue le fichier, je n'ai rien, aucun son.

    Je passe par un visualizer car j'ai cru comprendre qu'un enregistrement par mediaplayer ou audiorecord ne permet que d'enregistrer sur n'importe quel matériel seulement le micro.

    Merci d'avance
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    import java.io.ByteArrayOutputStream;
    import java.io.File;
    import java.io.FileNotFoundException;
    import java.io.FileOutputStream;
    import java.util.ArrayList;
    import java.util.List;
    import java.util.Random;
    import android.media.MediaPlayer;
    import android.media.audiofx.Visualizer;
    import android.net.Uri;
    import android.widget.Spinner;
    import android.widget.Button;
    import android.content.Context;
     
    public class MainActivity extends Activity {
    //Declarations
    	public String fichierrecord="";
        private Button auriculaire=null;
    	public boolean aTermine=true;
    	public Spinner selecti;
        public byte[]   mBytes=null;
        public ByteArrayOutputStream buffer;
        public     Visualizer v;
     
    @Override
    	protected void onCreate(Bundle saveInstanceState) {
     
        super.onCreate(saveInstanceState);
    //"instanciation" du layout...
        setContentView(R.layout.relalayou);
    	selecti=(Spinner) findViewById(R.id.spinner13);
    	auriculaire=(Button) findViewById(R.id.oreille);
     
    //instanciation du visualizer : je souhaite avoir la sortie son du téléphone quelque soit
    // le son émis par le téléphone (ici mediaplayer indirectement ) et ceci sans passer par le //micro	
    	v=new Visualizer(0);
     
     
    //preparation de la capture		
     
    	buffer=new ByteArrayOutputStream();
    	v.setEnabled(false);
    	v.setCaptureSize(65536);
        Visualizer.OnDataCaptureListener c=new Visualizer.OnDataCaptureListener(){
     
            @Override
            public void onWaveFormDataCapture(Visualizer vv, byte[] wf, int sr){
     
                mBytes=  wf;
     
                if (wf.length>-1){
     
                    buffer.write(wf,0,wf.length);}
            }
            @Override
            public void onFftDataCapture(Visualizer vv, byte[] wf, int sr) {
            } };
        v.setDataCaptureListener(c,Visualizer.getMaxCaptureRate()/2,true,true);
     
    // 'icone' sur lequel on appuie pour débuter et terminer la capture		
    		auriculaire.setOnClickListener(new View.OnClickListener(){//setOnItemSelectedListener(new AdapterView.OnItemSelectedListener(){
     
                @Override
    			public void onClick(View arg) {
    			if (aTermine==true){
    				Toast.makeText(MainActivity.this, "debute", Toast.LENGTH_LONG).show();
                    v.setEnabled(true);  aTermine=false;}
                else {v.setEnabled(false);
                   try {
                       buffer.flush();
                    } catch (IOException e) {
     
                    }
    				mBytes = buffer.toByteArray();
                    try {
                        buffer.close();
                    } catch (IOException e) {
     
                    }
                    v.release();
                    File f = new File(Environment.getExternalStorageDirectory(), "audiofichier.wav");
                    FileOutputStream fos;
                    try {
                        fos = new FileOutputStream(f);
                        fos.write(mBytes);
                        fos.flush();
                        fos.close();
                    } catch (FileNotFoundException e) {
                    } catch (IOException e) {
                    }
                    Toast.makeText(MainActivity.this, "termine", Toast.LENGTH_LONG).show();
     
                }
     
     
    aTermine=false;
     
    }
    // spinner qui permet de selectionner un fichier audio (si "file")	
        List<String> exem=new ArrayList<String>();
    		exem.add("pasFile");
    		exem.add("file");
    		final ArrayAdapter<String> ada =new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1,exem);
    		selecti.setAdapter(ada);
    		selecti.setSelection(0);
    		selectitonalite.setOnItemSelectedListener(new OnItemSelectedListener(){
    			public void onItemSelected(AdapterView<?> arg0, View arg1,
    					int arg2, long arg3) {
     
     
                        if (selecti.getSelectedItemId()==){
                            Toast.makeText(MainActivity.this, "Sélectionner le fichier audio (.mp3,.mp4,.m4a,.wav,.3gp,.ogg,.mkv,.mid,.xmf,.mxmf,.rttt1,.rtx,.ota,.imy)" +
                                    "sur lequel vous voulez jouer", Toast.LENGTH_LONG).show();
                            Toast.makeText(MainActivity.this, "Sélectionner le fichier audio (.mp3,.mp4,.m4a,.wav,.3gp,.ogg,.mkv,.mid,.xmf,.mxmf,.rttt1,.rtx,.ota,.imy)" +
                                    "sur lequel vous voulez jouer", Toast.LENGTH_LONG).show();
                            File mPath = new File(Environment.getExternalStorageDirectory() + "//DIR//");
     
                            FileDialog fileDialog = new FileDialog(MainActivity.this, mPath);
                            fileDialog.setFileEndsWith(".mp3",".mp4",".m4a",".wav",".3gp",".ogg",".mkv",".mid",".xmf",".mxmf",".rttt1",".rtx",".ota",".imy");//,);
                            fileDialog.addFileListener(new FileDialog.FileSelectedListener() {
                                public void fileSelected(File file) {
     
                                    File mmFichier = new File(fichierrecord);
                                    if (mmFichier.exists()) {
                                        MediaPlayer m= new MediaPlayer();try{m.setDataSource(fichierrecord);m.prepare();}catch(IOException e){};
                                     MediaPlayer.create(getApplicationContext(), Uri.fromFile(mmFichier));
                                        m.setVolume(1f,1f);
                                        m.start();
                                    file.toString());
                                }}
                            });
                            fileDialog.showDialog();
                        }

  2. #2
    Membre confirmé
    Homme Profil pro
    Webmaster
    Inscrit en
    Mars 2014
    Messages
    66
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Mars 2014
    Messages : 66
    Par défaut
    Quelqu'un aurait une idée pour faire un enregistrement sonore (la sortie son du téléphone) sans avoir un audiorecord ou mediarecord ??

Discussions similaires

  1. [FMS/Red5] Enregistrement de son par l'utilisateur
    Par BnA dans le forum Dynamique
    Réponses: 5
    Dernier message: 13/11/2006, 09h29
  2. Réponses: 2
    Dernier message: 12/10/2005, 15h15
  3. Voir quelques enregistrements définis par leur Index
    Par Lucien dans le forum Bases de données
    Réponses: 4
    Dernier message: 06/12/2004, 08h42
  4. Limiter le nombre d'enregistrements renvoyés par un SELECT
    Par Wilco dans le forum Bases de données
    Réponses: 3
    Dernier message: 17/11/2004, 13h47
  5. Enregistrement du son par programme
    Par Invité dans le forum C++Builder
    Réponses: 3
    Dernier message: 10/06/2003, 23h13

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo