3,245
社区成员
发帖
与我相关
我的任务
分享
void CViewLeft::OnMyButtonFileOpen()
{
CFileDialog fd(TRUE, NULL, NULL, OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT, NULL, NULL);
CString oriPath;
CMainFrame* pMain = (CMainFrame*)AfxGetApp()->m_pMainWnd;
if (fd.DoModal() == IDOK){
if (pMain->m_MediaPlayer != NULL &&
libvlc_media_player_get_state(pMain->m_MediaPlayer, &pMain->m_media_ex) == libvlc_Playing){
libvlc_media_player_stop(pMain->m_MediaPlayer, &pMain->m_media_ex);
}
pMain->m_strPath = fd.m_ofn.lpstrFile;
pMain->m_strPath.Format("%s", pMain->OnAnsiToUtf8());
pMain->OnPlay();
}
}
void CMainFrame::OnPlay()
{
char path[100];
CViewLeft* pLeftv = (CViewLeft*)m_wndSplitter.GetPane(0, 0);
if (m_strPath.IsEmpty())
return;
strcpy(path, m_strPath);
if (m_pInstance == NULL)
m_pInstance = libvlc_new(vlc_argc, vlc_argv, &m_media_ex);
if (!m_isinit_libex){
libvlc_exception_init(&m_media_ex);
m_libvlc_drawable = (libvlc_drawable_t) pLeftv->GetDlgItem(IDC_MY_MEDIA_PLAY)->GetSafeHwnd();
m_isinit_libex = 1;
}
m_media = libvlc_media_new(m_pInstance, path, &m_media_ex);
m_MediaPlayer = libvlc_media_player_new_from_media(m_media, &m_media_ex);
libvlc_media_player_set_drawable(m_MediaPlayer, m_libvlc_drawable, &m_media_ex);
libvlc_video_set_spu(m_MediaPlayer, 0, &m_media_ex);
libvlc_media_player_play(m_MediaPlayer, &m_media_ex);
libvlc_media_player_set_rate(m_MediaPlayer, 1, &m_media_ex);
pLeftv->m_btnPlay.SetIcon(IDI_ICON2);
pLeftv->m_sliderPro.ShowWindow(SW_SHOW);
m_ls = libvlc_Playing;
}