Audio 如何在metro应用程序中合并两个音频文件

Audio 如何在metro应用程序中合并两个音频文件,audio,windows-8,microsoft-metro,Audio,Windows 8,Microsoft Metro,如何在Metro中将两个音频文件(.mp3、.aac)合并为一个音频文件?可能吗?不知道音频文件, 但请尝试以下方法来合并文件: public static async Task<StorageFile> CombineFiles(string[] files, string filepath) { StorageFile sf; byte[] b; byte[] allfiles = n

如何在Metro中将两个音频文件(.mp3、.aac)合并为一个音频文件?可能吗?

不知道音频文件, 但请尝试以下方法来合并文件:

    public static async Task<StorageFile> CombineFiles(string[] files, string filepath)
        {
            StorageFile sf;
            byte[] b;
            byte[] allfiles = new byte[0];
            int position = 0;
            for (int i = 0; i < files.Length; i++)
            {
                sf = await StorageFile.GetFileFromPathAsync(files[i]);
                b = await Conversions.Convert_StorageFileToByteArray_Async(sf);
                Array.Resize(ref allfiles, allfiles.Length + b.Length);
                Array.Copy(b, 0, allfiles, position, b.Length);
                position += b.Length;
            }
            string filename = filepath.Substring(filepath.LastIndexOf("\\") + 1);

            StorageFolder tempfolder = Windows.Storage.ApplicationData.Current.TemporaryFolder;
            sf = await Conversions.Convert_ByteArrayToStorageFile(allfiles, tempfolder, filename);

            return sf;
        }

     //convert byte array to a storageFile
     public static async Task<StorageFile> Convert_ByteArrayToStorageFile(Byte[] data_byte, StorageFolder folder, string fileName)
      {
            StorageFile file = await folder.CreateFileAsync(fileName, CreationCollisionOption.ReplaceExisting);

            using (IRandomAccessStream fileStream = await file.OpenAsync(FileAccessMode.ReadWrite))
            {
                using (IOutputStream outputStream = fileStream.GetOutputStreamAt(0))
                {
                    using (DataWriter dataWriter = new DataWriter(outputStream))
                    {
                        dataWriter.WriteBytes(data_byte);
                        await dataWriter.StoreAsync();
                        dataWriter.DetachStream();
                    }
                    //write data on the empty file:
                    await outputStream.FlushAsync();
                }
                //write data on the empty file:
                await fileStream.FlushAsync();
                return file;
            }
        }
公共静态异步任务组合文件(字符串[]文件,字符串文件路径)
{
存储文件sf;
字节[]b;
字节[]所有文件=新字节[0];
int位置=0;
for(int i=0;i