2016-05-18 15 views
1

私はxamarinを使用してアプリケーションを開発し始めました。私のソリューションの中のプロジェクトの1つはUWPです。MediaPlayer Universal Windows App

誰かがボタンをクリックして私の目標を達成するためにMediaPlayerを使用していて、Windows 10(デスクトップ)では正常に動作しますが、Windows Mobile 10(Lumia 930)遅延(約1秒)。

I以下

オーディオソースを再生するために自分のコードを提供します。

MediaPlayer _player = BackgroundMediaPlayer.Current; 
_player.SetUriSource(new Uri(String.Format("ms-appx:///Assets/Sound/5s.wav", UriKind.Absolute)));    
_player.Play(); 

、私の質問は:

はMediaPlayerのよりUWPでオーディオを再生する他の方法はありますか?

+0

は、あなたが音楽をプリロードすることを試みましたか?ここをクリックしてください:https://blogs.windows.com/buildingapps/2016/01/13/the-basics-of-background-audio/ – SeeuD1

答えて

1

バックグラウンドオーディオを使用する特別な理由がない場合は、フォアグラウンドでオーディオを再生するだけでメディア要素を使用することができます。

<!-- create element in XAML or in code --> 
<MediaElement Name="mediaElement" ... /> 


// Code - set source or reference to stream 
MediaElement mediaElement = new MediaElement(); 
mediaElement.Source = new Uri("msappx:///Media/sound.mp3");  

私もsupported codecsのリストを確認することをお勧めします。

さらに複雑なシナリオでは、Audio Graph APIを参照してください。

+0

あなたの答えをありがとうが、私のアプリケーションの音楽では、私は敏感なスポットです、私は5秒間だけ再生する必要がありますが、遅滞なくバックグラウンドで行う必要があります。この場合でもオーディオグラフは私を助けませんでした。私は自分の問題に対する解決策を探し続けます。 –

0

これは悪い習慣であるかどうかわかりませんが、メディアをあらかじめロードするとインスタント再生が可能です。

擬似コード(C#のスタイル)で、この例のようなもの:

class Foo 
{ 
    private MediaPlayer _player; 

    Foo() //constructor 
    { 
     _player = BackgroundMediaPlayer.Current; 
     _player.AutoPlay = false; 
     _player.SetUriSource(new Uri(String.Format("ms-appx:///Assets/Sound/5s.wav", UriKind.Absolute)));    
    } 

    void ButtonClicked(Object sender, EventArgs event) 
    { 
     _player.Play(); 
    } 
} 
関連する問題