728x90
반응형
728x170
TestSolution.zip
다운로드
TestSolution.z01
다운로드
[TestProject 프로젝트]
▶ MainForm.cs
using System;
using System.Windows.Forms;
using TestLibrary;
namespace TestProject
{
/// <summary>
/// 메인 폼
/// </summary>
public partial class MainForm : Form
{
//////////////////////////////////////////////////////////////////////////////////////////////////// Constructor
////////////////////////////////////////////////////////////////////////////////////////// Public
#region 생성자 - MainForm()
/// <summary>
/// 생성자
/// </summary>
public MainForm()
{
InitializeComponent();
this.streamPlayerControl.StreamStarted += streamPlayerControl_StreamStarted;
this.streamPlayerControl.StreamStopped += streamPlayerControl_StreamStopped;
this.streamPlayerControl.StreamFailed += streamPlayerControl_StreamFailed;
this.playButton.Click += playButton_Click;
this.stopButton.Click += stopButton_Click;
this.imageButton.Click += imageButton_Click;
}
#endregion
//////////////////////////////////////////////////////////////////////////////////////////////////// Method
////////////////////////////////////////////////////////////////////////////////////////// Private
//////////////////////////////////////////////////////////////////////////////// Event
#region 스트림 재생기 컨트롤 스트림 시작시 처리하기 - streamPlayerControl_StreamStarted(sender, e)
/// <summary>
/// 스트림 재생기 컨트롤 스트림 시작시 처리하기
/// </summary>
/// <param name="sender">이벤트 발생자</param>
/// <param name="e">이벤트 인자</param>
private void streamPlayerControl_StreamStarted(object sender, EventArgs e)
{
SetButtonEnabled();
this.statusTextBox.Text = "재생";
}
#endregion
#region 스트림 재생기 컨트롤 스트림 중단시 처리하기 - streamPlayerControl_StreamStopped(sender, e)
/// <summary>
/// 스트림 재생기 컨트롤 스트림 중단시 처리하기
/// </summary>
/// <param name="sender">이벤트 발생자</param>
/// <param name="e">이벤트 인자</param>
private void streamPlayerControl_StreamStopped(object sender, EventArgs e)
{
SetButtonEnabled();
this.statusTextBox.Text = "중단";
}
#endregion
#region 스트림 재생기 컨트롤 스트림 실패시 처리하기 - streamPlayerControl_StreamFailed(sender, e)
/// <summary>
/// 스트림 재생기 컨트롤 스트림 실패시 처리하기
/// </summary>
/// <param name="sender">이벤트 발생자</param>
/// <param name="e">이벤트 인자</param>
private void streamPlayerControl_StreamFailed(object sender, StreamFailedEventArgs e)
{
SetButtonEnabled();
this.statusTextBox.Text = "실패";
MessageBox.Show(e.Error, "에러", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
#endregion
#region 재생하기 버튼 클릭시 처리하기 - playButton_Click(sender, e)
/// <summary>
/// 재생하기 버튼 클릭시 처리하기
/// </summary>
/// <param name="sender">이벤트 발생자</param>
/// <param name="e">이벤트 인자</param>
private void playButton_Click(object sender, EventArgs e)
{
var uri = new Uri(this.urlTextBox.Text);
this.streamPlayerControl.StartPlay(uri);
this.statusTextBox.Text = "연결중...";
}
#endregion
#region 중단하기 버튼 클릭시 처리하기 - stopButton_Click(sender, e)
/// <summary>
/// 중단하기 버튼 클릭시 처리하기
/// </summary>
/// <param name="sender">이벤트 발생자</param>
/// <param name="e">이벤트 인자</param>
private void stopButton_Click(object sender, EventArgs e)
{
this.streamPlayerControl.Stop();
}
#endregion
#region 이미지 버튼 클릭시 처리하기 - imageButton_Click(sender, e)
/// <summary>
/// 이미지 버튼 클릭시 처리하기
/// </summary>
/// <param name="sender">이벤트 발생자</param>
/// <param name="e">이벤트 인자</param>
private void imageButton_Click(object sender, EventArgs e)
{
SaveFileDialog saveFileDialog = new SaveFileDialog();
saveFileDialog.Filter = "비트맵 이미지|*.bmp";
if(saveFileDialog.ShowDialog() == DialogResult.OK)
{
this.streamPlayerControl.GetCurrentFrame().Save(saveFileDialog.FileName);
}
}
#endregion
//////////////////////////////////////////////////////////////////////////////// Function
#region 버튼 이용 가능 여부 설정하기 - SetButtonEnabled()
/// <summary>
/// 버튼 이용 가능 여부 설정하기
/// </summary>
private void SetButtonEnabled()
{
this.playButton.Enabled = !this.streamPlayerControl.IsPlaying;
this.stopButton.Enabled = this.streamPlayerControl.IsPlaying;
this.imageButton.Enabled = this.streamPlayerControl.IsPlaying;
}
#endregion
}
}
728x90
반응형
그리드형(광고전용)
'C# > WinForm' 카테고리의 다른 글
[C#/WINFORM] 투명 배경 스플래시 이미지 사용하기 (0) | 2019.08.15 |
---|---|
[C#/WINFORM] InstalledFontCollection 클래스 : 영문 폰트명 리스트 구하기 (0) | 2019.08.02 |
[C#/WINFORM] 타원과 원 내부 마우스 위치 여부 구하기 (0) | 2019.07.14 |
[C#/WINFORM] 오각형(Pentagram) 그리기 (0) | 2019.07.14 |
[C#/WINFORM] SynchronizationContext 클래스 : 크로스 스레드(Cross Thread) 처리하기 (0) | 2019.07.13 |
[C#/WINFORM] 웹 카메라 사용하기 (0) | 2019.06.12 |
[C#/WINFORM] A* (AStar) 길 찾기 알고리즘 사용하기 (0) | 2019.06.09 |
[C#/WINFORM] Screen 클래스 : AllScreens 정적 속성을 사용해 다른 모니터에서 폼 표시하기 (0) | 2019.05.25 |
[C#/WINFORM] ParentControlDesigner 클래스를 사용해 디자이너 모드에서 편집 가능한 사용자 컨트롤 만들기 (0) | 2019.05.08 |
[C#/WINFORM] ClickOnce 설치시 실행 권한이 없어서 설치가 안되는 경우 처리하기 (0) | 2019.01.16 |
댓글을 달아 주세요