メトロノームアプリケーションを作成することに決めました。だから、私は "初心者"です。私はこのプロジェクトをOOPやその他のことについて学ぶ目的で作ったのです。 私のアプリケーションはかなりうまく動作しますが、まだ問題はほとんどありません。UWPメトロノームApp - MediaPlayerElementトランスポートコントロールとパフォーマンス
私はMediaPlayerElementを使用してサウンドティックを再生しました。私はこのために、私は
mediaPlayer.MediaPlayer.SystemMediaTransportControls.IsEnabled = false;
を書きましたが、まだ有効なメディアトランスポートコントロール、メディアトランスポートコントロールが実行時に表示されることを望んでいません。
もう1つの問題は、アプリケーションがPCでかなり機能していること(多分処理能力があります)ですが、スマートフォンではあまりうまく機能しません。 BPMが高い(190または200より大きい)場合、アプリケーションはサウンドを正しく再生せず、ほとんど常に遅れます。以下のコード:
Playerのソース
class Player
{
MediaPlayerElement mediaPlayer = new MediaPlayerElement();
public void Init()
{
try
{
Uri src = new Uri("ms-appx:///Assets/beep.wav");
mediaPlayer.Source = MediaSource.CreateFromUri(src);
mediaPlayer.MediaPlayer.SystemMediaTransportControls.IsEnabled = false;
}
catch (Exception e)
{
System.Diagnostics.Debug.WriteLine("Error!" + e);
}
}
public void Play()
{
mediaPlayer.MediaPlayer.Play();
}
public Player()
{
Init();
}
}
METRONOMEソース
class Metronome
{
private Player player = new Player();
private DispatcherTimer dispTimer = new DispatcherTimer();
private double interval;
public int Tempo { get; set; }
public bool IsActive { get; set; } //returns the state
private void Init()
{
interval = (double)60/Tempo - 0.02;
dispTimer.Tick += DispTimer_Tick;
dispTimer.Interval = TimeSpan.FromSeconds(interval);
}
private void DispTimer_Tick(object sender, object e)
{
player.Play();
}
public void Start()
{
Init();
dispTimer.Start();
IsActive = true;
}
public void Stop()
{
dispTimer.Stop();
IsActive = false;
}
}
私はテンポのプロパティに関連付けられているし、ユーザーを押し、スタートボタンmetronomoは、サウンドを再生したときにされたスライダーを持っています。 これは、指定された値に達するとサウンドを再生するタイマーのように機能します。
コンピュータ(Core I3)では、このアプリケーションは最大1.0%のCPUを使用していますが、Smartphone(Lumia 535)のCPU使用量はわかりません。
**私のCPUはVT-Xをサポートしていますが、私のチップセットはサポートされていません。 :p
ありがとうございました! :)
バックグラウンドプレイヤーが正常に動作し、メディアトランスポートコントロールが無効になります。 SetUriSourceは廃止されました」。アプリのパフォーマンスはモバイルではまだ変わりませんが、私はこのためにいくつかのソリューションを検索します。 –