各位:
    
    小弟最近在做一个手机定制的项目,遇到一个问题想请教一下大家。问题如下:    在android的源码中,录音机,每次录音保存后,生成的录影文件的文件名都会带有一串数字  
形如:recording809329324.3gpp,请问这一串数字是怎么生成的。小弟刚入行不久,能力不足,
看录音机的源码没发现哪里生成了这串数字。这串数字有什么含义吗?
    谢谢各位!

解决方案 »

  1.   

    这个名字可以自定义的,见下面的代码: int recfilenum = 0;
            char count[] = {'0', '0', '1'};
            String recfilename = "REC" + count[0] + count[1] + count[2] + postfix;        while ((new File(prefStorageFile, recfilename)).exists())
            {
                recfilenum++;
                if (recfilenum > 998)
                {
                    break;
                }
                count[0] = (char) ('0' + (recfilenum + 1) / 100);
                count[1] = (char) ('0' + (recfilenum + 1) % 100 / 10);
                count[2] = (char) ('0' + (recfilenum + 1) % 10);
                recfilename = "REC" + count[0] + count[1] + count[2] + postfix;
            }        mSampleFile = new File(prefStorageFile, recfilename);这个三位数的数字表示的是该录音文件是第几个被录的.在源码的这个路径下:
    \packages\apps\SoundRecorder\src\com\android\soundrecorder\Recorder.java
    有这么几行代码: public void startRecording(int outputfileformat, String extension, Context context) {
            stop();
            
            if (mSampleFile == null) {
                File sampleDir = Environment.getExternalStorageDirectory();
                if (!sampleDir.canWrite()) // Workaround for broken sdcard support on the device.
                    sampleDir = new File("/sdcard/sdcard");            
                try {
                    mSampleFile = File.createTempFile(SAMPLE_PREFIX, extension, sampleDir);
                } catch (IOException e) {
                    setError(SDCARD_ACCESS_ERROR);
                    return;
                }
            }
    可见这个数字只是一个临时数,没有实际意义
      

  2.   

    谢谢你的回复,现在我又遇到另一个问题,想继续请教你一下,
       现在,我希望,这个android自带的录音机,能够在不退出的前提下,连续录制两个文件,但是我发现在保存第二个文件的时候,会报错:无法保存录制的音频分析,可能是因为在调用saveSample()这个函数中因为调用了
    uri = this.addToMediaDB(mRecorder.sampleFile());而在addToMediaDB中 Uri result = resolver.insert(base, cv);这一句会返回null,所以就没法继续保存了,应该是文件重名的原因,请问我应该怎么改  再次感谢
      

  3.   

    不知道你报错的log是什么样子的,具体是什么原因我也不大清楚,如果如你所说是因为文件重名导致的话你可以验证一下,自定义两个不同的String,分别作为两个不同文件的文件名,如果不报错没有问题的话,你就再每次调用saveSample时将文件名定义的数字自增,这样就不会重名了。
      

  4.   

    你好 我也遇到了和你同样的问题。。 recording809329324.3gpp
      我想知道 怎么能把后面那一串数字去掉啊。 存文件的时候 只要存成    recording.3gpp就可以了。