2017-05-19 28 views
-1

button_playbutton_pauseがあります。私は1つのボタンにそれらを結合したい。曲が初めて押されると、曲の演奏が始まります。 2回目の一時停止。 3回目の押しで、再生が続けられます。私はそれを行うことはできません。2つのボタンを組み合わせる方法

私はそれらをどのように組み合わせるか教えてください。

private void button_play_Click(object sender, EventArgs e) 
{ 
    if ((list_catalog.Items.Count != 0) && (list_catalog.SelectedIndex != -1)) 
    { 
     string current = Vars.Files[list_catalog.SelectedIndex]; 
     Vars.CurrentTrackNumber = list_catalog.SelectedIndex; 
     BassLike.Play(current, BassLike.Volume); 
     label_time1.Text = TimeSpan.FromSeconds(BassLike.GetPosOfStream(BassLike.Stream)).ToString(); 
     label_time2.Text = TimeSpan.FromSeconds(BassLike.GetTimeOfStream(BassLike.Stream)).ToString(); 
     xrewind.Maximum = BassLike.GetTimeOfStream(BassLike.Stream); 
     xrewind.Value = BassLike.GetPosOfStream(BassLike.Stream); 
     timer1.Enabled = true; 
    } 
} 

private void button_pause_Click(object sender, EventArgs e) 
{ 
    BassLike.Pause(); 
} 
+0

なぜ、あなたは '1 Button'を使ってコードを書くことができず、最初のボタンでコードを書くことができないのですか?クリックしたテキストを' Paused' ")'その後、 "開始"に戻っていくつかの追加の論理を設定..私は問題がここに何か見ていない..?または正確にブール値を使用することを学ぶ.. – MethodMan

+0

基本的には、曲が再生されているかどうかを確認する方法が欲しい。理想的には、曲の状態を確認できる方法があります。 GetIsPlaying()と同様に、その関数の結果に基づいてアクションを変更します。簡単な方法は、ブールプロパティ 'IsPlaying'で状態を追跡し、ボタンを押すたびにIsPlaying =!IsPlaying;プロパティを反転し、ボタンテキストを更新することをクエリすることです – musefan

答えて

5

ような何か:最も簡単な方法は、新しいButtonオブジェクトを作成し、正しい画像を表示するための適切な方法を追加することです

private bool _isPlaying; 

private void button_Click(object sender, EventArgs e) 
{ 
    if(!_isPlaying) 
    { 
     mediaThing.Play(); 
     button1.Text = "Pause"; 
    } 
    else 
    { 
     mediaThing.Pause(); 
     button1.Text = "Play"; 
    } 

    _isPlaying = !_isPlaying; 
} 
+0

"停止 "ではなく"停止 " – musefan

+1

@musefan tnx ...それを修正しました。 –

+0

私はあなたの方法をよく理解していません。私のコードに基づいてそれを変更できますか? – Gif

0

。このようなもの:

public class ButtonStateHandler:MonoBehaviour { 
public boolean isClicked; 
public Button myBtn; 
public Sprite Play; 
public Sprite Pause; 

public void Click(){ 
    changeState(); 
} 
private void changeState(){ 
    isClicked = !isClicked; 
    if(isClicked)  myBtn.image.sprite = Play; 
    else myBtn.image.sprite = Pause; 
    } 
} 

希望します。

関連する問題