Audio 如何在metro应用程序中合并两个音频文件
如何在Metro中将两个音频文件(.mp3、.aac)合并为一个音频文件?可能吗?不知道音频文件, 但请尝试以下方法来合并文件: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
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