2013-12-18 38 views
0

在我的應用程序中,我嘗試使用intent將文件路徑從一個活動傳遞到另一個活動。在我的接收活動中,我將文件路徑設置爲「null」。但是,當我在第一項活動是打印path.From我的第二個活動我附上文件使用Gmailsender.This曾是我的代碼,以郵寄,從sdcard獲取音頻文件的路徑

private void startRecord() 
      { 
        File file = new File(Environment.getExternalStorageDirectory(), "test.pcm"); 

        try 
        { 
         file.createNewFile(); 

         OutputStream outputStream = new FileOutputStream(file); 
         BufferedOutputStream bufferedOutputStream = new BufferedOutputStream(outputStream); 
         DataOutputStream dataOutputStream = new DataOutputStream(bufferedOutputStream); 

         int minBufferSize = AudioRecord.getMinBufferSize(8000, 
            AudioFormat.CHANNEL_IN_MONO, 
            AudioFormat.ENCODING_PCM_16BIT); 

         short[] audioData = new short[minBufferSize]; 

         AudioRecord audioRecord = new AudioRecord(MediaRecorder.AudioSource.MIC, 
            8000, 
            AudioFormat.CHANNEL_IN_MONO, 
            AudioFormat.ENCODING_PCM_16BIT, 
            minBufferSize); 

         audioRecord.startRecording(); 

         while(recording) 
         { 
           int numberOfShort = audioRecord.read(audioData, 0, minBufferSize); 
           for(int i = 0; i < numberOfShort; i++) 
           { 
            dataOutputStream.writeShort(audioData[i]); 
           } 
         } 
         audioRecord.stop(); 
         audioRecord.release(); 
         dataOutputStream.close(); 

        } 
        catch (IOException e) 
        { 
         e.printStackTrace(); 
        } 
        String audiofile; 
        audiofile=file.getAbsolutePath(); 
        System.out.println("File Path::::"+audiofile); 
      } 

意圖是,

Intent sigout=new Intent(getApplicationContext(),WeeklyendActivity.class); 
    sigout.putExtra("mnt/sdcard-test.pcm",audiofile); 
    startActivity(sigout); 

在我的接收活動,

String patty=getIntent().getStringExtra("mnt/sdcard-text.pcm"); 

     System.out.println("paathhhy frfom ::"+patty); 

它打印null.Can任何人都可以幫助我如何獲得文件路徑。更多的事情我不確定音頻是否將保存在該文件中正確?

任何人都可以幫助我!!!在此先感謝!根據您的信息audioFileFile類型的變量,當你做到這一點

+0

是要添加('audioFile')額外真的'String'? –

+0

@David Wasser !!沒有它的文件 – Jolly

回答

0

sigout.putExtra("mnt/sdcard-test.pcm",audiofile); 

你把一個File對象的額外Bundle。然後,當您嘗試獲取來自Bundle額外你這樣做:

String patty=getIntent().getStringExtra("mnt/sdcard-text.pcm"); 

然而,這個額外的對象是File類型的,不是類型String。這就是爲什麼你得到null

如果你只是想傳遞的文件名,然後把這樣多餘的:

sigout.putExtra("mnt/sdcard-test.pcm",audiofile.getAbsolutePath()); 
+0

我會告訴我的要求...我在我的應用程序中實現了音頻錄製。音頻錄製工作正常。我想要獲取用於錄製的音頻文件並將其傳遞給下一個要在郵件中附加的活動...現在,我怎樣才能將文件從一個活動傳遞到另一個活動 – Jolly

+0

您只需將文件名傳遞給下一個活動並在那裏打開文件。你不想通過'Intent' extras傳遞'File'對象。 –