1

2つのオーディオファイル(.mp3、.aac)をMetroで1つのオーディオファイルにマージするにはどうすればよいですか?出来ますか?

4

1 に答える 1

0

オーディオファイルについてはわかりませんが、これを試してファイルを結合してください:

    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;
            }
        }
于 2014-01-15T08:08:45.213 に答える