1

いくつかのオーディオ ファイルを Eclipse プロジェクトの raw フォルダーから sd カードにコピーできる Android アプリケーションを作成したいと考えています。ファイルはSDカードにコピーされますが、次のメッセージ「プレーヤーはこのタイプのオーディオファイルをサポートしていません」でメディアプレーヤーが再生できません。ファイルが破損しているようですが、理由はわかりません。これは私のコードです:

Button copy = (Button) findViewById(R.id.button2);
    copy.setOnClickListener(new View.OnClickListener(){
        public void onClick(View view) {

            File sdCard, directory = null;
            String nombreMP3 = "audio.mp3";
            BufferedInputStream  entrada = null;
            BufferedOutputStream salida = null;
            int len=0;
            sdCard = Environment.getExternalStorageDirectory();
            directory = new File( sdCard.getAbsolutePath() + "/CarpetaAplicacion2");
            if (!directory.exists()){
                directory.mkdir();
            }
            File f = new File(directory, nombreMP3);
            try {                   
                entrada = new BufferedInputStream(getResources().openRawResource(R.raw.dignidad));
                salida = new BufferedOutputStream((new FileOutputStream(f)),4096);
                byte[] buff = new byte[4096];
            while ((len=entrada.read()) > 0){   
                synchronized (buff){
                    salida.write(buff,0,len);
                    salida.flush();}
            }

            } catch (IOException ex) { 
                if( entrada != null){
                    try {
                        entrada.close();
                    } catch (IOException e) {
                        // TODO Auto-generated catch block
                        e.printStackTrace();
                    }}
                if (salida != null) {
              try {
                salida.close();
            } catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }}
            }
            finally{
                if( entrada != null){
                    try {
                        entrada.close();
                    } catch (IOException e) {
                        // TODO Auto-generated catch block
                        e.printStackTrace();
                    }}
                if (salida != null) {
              try {
                salida.close();
            } catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
        }
4

0 に答える 0