2つのオーディオファイル(.mp3、.aac)をMetroで1つのオーディオファイルにマージするにはどうすればよいですか?出来ますか?
質問する
122 次
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 に答える