file - 从SD卡获取音频文件的路径

标签 file audio android-intent path record

在我的应用程序中,我尝试使用intent将文件路径从一个 Activity 传递到另一个 Activity 。在我的接收 Activity 中,文件路径为“空”。但是当我在第一个 Activity 中打印文件时,它将打印路径。 Activity ,我使用Gmailsender将文件附加到邮件中。这是我尝试的代码,

   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);  

在我的接收 Activity 中
   String patty=getIntent().getStringExtra("mnt/sdcard-text.pcm");

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

它会输出null。有人可以帮助我获取文件路径吗?我不确定音频是否可以正确保存在该文件中?

请任何人帮助我!!谢谢!

最佳答案

根据您的信息,audioFileFile类型的变量,当您这样做时:

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

您将File对象放入extras Bundle中。然后,当您尝试从Bundle中获取更多内容时,请执行以下操作:
String patty=getIntent().getStringExtra("mnt/sdcard-text.pcm");

但是,此额外对象的类型为File,而不是String。这就是为什么您得到null的原因。

如果只想传递文件名,则将多余的内容输入如下:
sigout.putExtra("mnt/sdcard-test.pcm",audiofile.getAbsolutePath());

关于file - 从SD卡获取音频文件的路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20652498/

相关文章:

c++ - 如何将 FIBMAP 返回的数据转换为磁盘的 LBA 扇区?

ios 添加音频到按钮

android - Android,对图像,视频和音频使用相同的onActivityResult

c# - 音频的Base64验证

android - 谷歌地图驾驶模式 url 方案不适用于 Android

c - 无法在 C 中正确读取文件

file - LaTeX hyperref 包 : Opening a target PDF at a specific page

c - 使用 read 从二进制文件中读取结构

android - IntentService 陷入困境

android - 立即刷新当前 Activity