2017-10-06 5 views
0

私はデスクトップ上でWavファイルを開いて音を鳴らしています。 これはUWPアプリケーションで可能ですか?UWP、デスクトップのサウンドファイルを再生しますか?

var mediaElement = new MediaElement(); 
     //StorageFolder storageFolder = ApplicationData.Current.LocalFolder; 
     var uri = new System.Uri(filename); 
     var converted = uri.AbsoluteUri; 
     StorageFile storageFolder = await StorageFile.GetFileFromApplicationUriAsync(uri); 
     var file = await storageFolder.TryGetItemAsync(filename) as IStorageFile; 

     if (file != null) 
     { 
      StorageFile soundfile = await storageFolder.GetFileAsync(filename); 
      mediaElement.SetSource(await soundfile.OpenAsync(FileAccessMode.Read), soundfile.ContentType); 
      mediaElement.Play(); 
     } 

ここは私のファイル名です。それはフルパスです。

D:\develop\visualstudio2\local\sound\sound1.wav 

ここが私の必要条件です。

  1. オープンfilepicker(I成功)でファイルSQLiteデータベースへ
  2. 保存パス。
  3. アプリケーションを再起動します。
  4. Sqliteデータベースからファイルパスを取得します。
  5. サウンドを再生します。

答えて

0

、あなたのアプリケーション "メディア/ test.wav"

var element = new MediaElement(); 
var folder = await Windows.ApplicationModel.Package.Current.InstalledLocation.GetFolderAsync("media"); 
var file = await folder.GetFileAsync("test.wav"); 
var stream = await file.OpenAsync(Windows.Storage.FileAccessMode.Read); 
element.SetSource(stream, ""); 
element.Play(); 
+0

私は、ユーザーが自分の好きにサウンドファイルを切り替えることができますオプションを作りたいです。 Wavファイルをインストールしたディレクトリに置くことはできません。これはUWPで可能ですか?私の更新を参照してください。 –

+0

この参考情報を参照してください:https://github.com/Microsoft/Windows-task-snippets/blob/master/tasks/Play-sound-once-or-looped.md –

+0

ms-appx:/// Assets/test.mp3、このAssetフォルダですか?私はc:\ abc.wavでファイルを再生したいですか?それは可能ですか? –

0

Iの成功のルートにwavファイルを持っていると仮定すると!ここで

はApplicationData.Current.LocalFolder

  • SQLiteデータベースにファイル名を保存するステップ

    1. まずPickSingleFileAsync
    2. でWAVファイルを選択
    3. コピーしたファイルです。 (フルパスは含まない)
    4. ファイルを再生する(LocalFolderを保存する)。

    OK、行ってみましょう。

    まず、ファイルを選択します。

    public async void Click_SettingCommonPathSoundFile1() 
        { 
         var picker = new FileOpenPicker(); 
         picker.ViewMode = PickerViewMode.Thumbnail; 
         picker.SuggestedStartLocation = PickerLocationId.PicturesLibrary; 
         picker.FileTypeFilter.Add(".wav"); 
    
         StorageFile file = await picker.PickSingleFileAsync(); 
         if (file != null) 
         { 
          // save to the file name to Sqlite at here. 
          await file.CopyAsync(ApplicationData.Current.LocalFolder); 
    
         } 
        } 
    

    再生します。

    public async void Click_SettingCommonPathSoundFile1Play() 
        { 
         // get file name from database. 
         await playit("sound1.wav"); 
    
        } 
    

    と..

    private async Task playit(string filename) 
        { 
    
         var element = new MediaElement(); 
         StorageFolder storageFolder = ApplicationData.Current.LocalFolder; 
         var file = await storageFolder.GetFileAsync(filename); 
         var stream = await file.OpenAsync(Windows.Storage.FileAccessMode.Read); 
         element.SetSource(stream, ""); 
         element.Play(); 
    

    }

  • 関連する問題