Как узнать длину WAV-файла в Windows Phone - PullRequest
0 голосов
/ 25 октября 2011

Я хочу получить длину волнового файла. В настоящее время я использую следующий код

using (IsolatedStorageFile isofile = IsolatedStorageFile.GetUserStoreForApplication())
{
    using (IsolatedStorageFileStream isostream = new IsolatedStorageFileStream(FilePath, System.IO.FileMode.Open,System.IO.FileAccess.Read, isofile))
    {
        me = new MediaElement();
        me.SetSource(isostream);
    }
 }
embedVoiceLength = me.NaturalDuration.TimeSpan.TotalSeconds;

Однако, он не возвращает длину от naturalduration.timespan.totalseconds, потому что me не открывается;

Ответы [ 2 ]

0 голосов
/ 25 октября 2011

Вы можете использовать что-то вроде этого:

Microphone microphone = Microphone.Default;

using (IsolatedStorageFileStream stream = storage.OpenFile(filename, FileMode.Open, FileAccess.Read))
{
    TimeSpan duration = microphone.GetSampleDuration((int)stream.Length);
}

Я взял этот пример кода из интересной статьи по работе со звуком в WP7. Здесь это так, код также доступен для скачивания.Надеюсь это поможет!:)

0 голосов
/ 25 октября 2011

Если вы не можете получить длину, пока файл не будет открыт, попробуйте открыть его.
Если вам нужна только длина, а не ее воспроизведение, обработайте событие MediaOpened, а при его срабатывании получите длину и остановите воспроизведение.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...