2017-04-11 19 views
0

サウンドを再生しようとしています。listTime.ItemsのDateTimeがDateTime.Nowと等しい場合、サウンドを再生しようとしています。listViewのdateTime == dateTime.Now

public Form1() 
    { 
     InitializeComponent(); 
     listView1.View = View.Tile; 
     listView1.View = View.Details; 
     listView1.Groups.Add(pilne); 
     listView1.Groups.Add(przyszle); 
     DateTime localDate = DateTime.Now; 

     foreach (ListViewItem item in listView1.Items) 
     { 
      if (item.SubItems[2].Text == DateTime.Now.ToString("dd/MMMM/yyyy")) 
      { 
       SoundPlayer simpleSound = new SoundPlayer(@"c:\Windows\Media\Alarm01.wav"); 
       simpleSound.Play(); 
      } 
     } 
    } 

と私の2番目の形式は次のとおりです: 私のコードがある私はこのような第二のフォームから項目を追加してい

public Form2() 
    { 
     InitializeComponent(); 
     dateTimePicker1.Format = DateTimePickerFormat.Custom; 
     dateTimePicker1.CustomFormat = "dd/MMMM/yyyy"; 
     dateTimePicker2.Format = DateTimePickerFormat.Time; 
     dateTimePicker2.ShowUpDown = true; 

    } 

private void btn2Zapisz_Click(object sender, EventArgs e) 
    { 
     string data2 = dateTimePicker1.Text;  //date 
     string godzina2 = dateTimePicker2.Text;  //time 
     string nazwa2 = tB2Nazwa.Text;    //name 
     string opis2 = rTB2Opis.Text;    //description 
     ListViewItem lvi = new ListViewItem(nazwa2); 
     lvi.SubItems.Add(data2); 
     lvi.SubItems.Add(godzina2); 
     lvi.SubItems.Add(opis2); 
     var dataWybrana = dateTimePicker1.Value; 
     var dataAktualna = DateTime.Now.AddDays(7); 
     string lvi2 = lvi.ToString(); 

     if (dataWybrana < dataAktualna) 
     { 
      listViewForm2.Items.Add(lvi); 
      lvi.Group = pilne2; 
     } 
     else 
     { 
      listViewForm2.Items.Add(lvi); 
      lvi.Group = przyszle2; 
     } 
     for (int i = listViewForm2.SelectedItems.Count - 1; i >= 0; i--) 
     { 
      ListViewItem itm = listViewForm2.SelectedItems[i]; 
      listViewForm2.Items[itm.Index].Remove(); 
     } 
     this.Close(); 
    } 

その再生していない音。 lvi.SubItems.Add(data2)が現在の日付と等しい場合、再生音が欲しいです。このコードで何が間違っていますか?

+1

'item.SubItems [2] .Text == DateTime.Now.ToString(" dd/MMMM/yyyy ")'が真に等しいことをテストしましたか?サウンドを再生していないか、if文で失敗していますか? –

+0

'item.SubItems [2] .Text == DateTime.Now.ToString(" dd.MMMM.yyyy ")' はサウンドの再生に失敗しています – themati91

+0

したがって、if文は正しくtrueを返しますか? –

答えて

0

SoundPlayer simpleSound = new SoundPlayer(@"c:\Windows\Media\Alarm01.wav"); 
simpleSound.Load(); 
simpleSound.Play(); 

を再生する前に、サウンドがロードされていることを確認します。また、あなたはリソースとしてアプリに保存されたサウンドファイルを持っている場合があります。それで、あなたはこれをこのように参照することができます。これが原因アクセス許可の問題に発見されていないサウンドファイルの問題を回避する

SoundPlayer simpleSound = new SoundPlayer(Properties.Resources.Alarm01); 
simpleSound.Play(); 

など

0

まあコードは正常に見えるが、サウンドを再生本当にあなたが例えば に取り組んでいる環境によって異なりますあなたはWindowsサーバー上でこのコードを実行しています(2012年を言いましょう)。その後、コントロールパネルからのメディア機能を有効にしたり、機能を追加または削除したり、適切なアクセス権が必要な再生サウンドを再生する必要があります。 できることはありますか

1.本番環境では、いくつかのノイズが発生する可能性があることを示すために、他のオーディオファイルを再生することができます。つまり、本番環境でも音が鳴ることを確認してください。

2. Windows Media Playerを使用して、.wavファイルが悪質なファイルであるかどうかを確認するために、運用環境で.wavファイルを再生することができます。 テストした「実稼働環境」と同じ環境の他のデスクトップや他のコンピュータなど、他のコンピュータでアプリケーションを実行できます。

3.プロダクション環境でアプリを実行しているときに例外がいくつかあるかどうかを確認するために、アプリでコード内にいくつかのログ情報と "try ... catch ..."ステートメントを追加しようとすることができます。

関連する問題