2016-03-26 12 views
0

私はc#/ xaml UWPアプリケーションで以下の機能をどのように達成できるのか知りたいと思います。音楽ライブラリストレージのUWPデータベース

  1. アプリが初めて実行されたときに、音楽ライブラリ、フォルダ、ファイル、すべてのものをスキャンします。
  2. その後、バックエンドで何らかのデータベースに格納します。
  3. だから、いつでもアプリを起動すると、毎回スキャンを繰り返す必要はなく、実行するだけですべての必要なデータが既に保存されています。
  4. 私はsqliteのデータベースがapplicationdata.localfolder
  5. で使用することができることを推測していますが、私はどこか良い方法で私のアプリのすべてのページのすべてのビジュアル要素の状態やデータを保存することができる方法はあり?アプリが起動するたびに最小化されて最大化されたように見えますか?

ありがとうございました。

+0

このhttps://msdn.microsoft.com/en-us/windows/uwp/files/quickstart-managing-folders-in-the-music-pictures-and-videos-librariesとhttps://を参照してください。 msdn.microsoft.com/en-us/windows/uwp/files/quickstart-managing-folders-in-the-music-pictures-and-videos-libraries。あなたの最初のポイント。最初のリンクにはすべての曲をフェッチする方法があり、2番目にはバックグラウンドのオーディオタスクの詳細があります。 – Archana

+0

私はリンク@Archana本当に感謝していますが、私は実際に知っていることを知っている私は知っているすべてのabt knownfolders、私のアプリは、アプリケーションの最初の実行時にknownfoldersからファイルを抽出する必要があり、アプリをもう一度。また、グリッドビューやリストビューなどにバインドされたデータを保存するにはどうすればいいのですか?次回は、ループして各アイテムに値を代入するのではなく、お返事 –

+0

最初の打ち上げ時に、曲のメタデータ(名前、パスなど)をデータベーステーブルに保存します。その後の起動時に、Music APIとデータベーステーブルから返された曲数を比較します。それはデータベースからフェッチする必要がありますかそれ以外の場合は、APIからフェッチする必要があります。第2起動時にはるかに高速になります – Archana

答えて

1

初回起動時に曲(名前、パスなど)のメタデータをデータベーステーブルに保存します。その後の起動時に、Music APIとデータベーステーブルから返された曲数を比較します。それはデータベースからフェッチする必要がありますかそれ以外の場合は、APIからフェッチする必要があります。これは、2回目の起動時にはるかに高速です APIから返されたソングコレクションをループし、非同期タスクでデータベースに保存する最初の起動操作を行う必要があります。 UIがハングしません いいえ、storagefileをdbに保存することはできません。sqlliteに互換性のある型はありません。代わりに、あなたは曲のパスを保存することができます。実際には、StorageFileではなく、曲を再生するためにパスを使用する必要があります。 MediaPlayerの再生方法では、Uriとして曲を再生するためのパスも必要です。それを確認します。

+0

私は、メディア要素がどのようにパスから直接再生されるかをコードスニペットで見せてください。 :) –

+0

BackgroundMediaPlayer.Current.SetUriSource(新しいUri( "ms-appx:///Assets/Media/Ring02.wma")); BackgroundMediaPlayer.Current.Play()このリンクを確認してください。http://www.jayway.com/2014/04/24/windows-phone-8-1-for-developers-the-background-media-player – Archana

+0

BackGroundMediaPlayerが曲を再生する – Archana