C# アプリケーションの 1 つで Sopcast activex プラグイン (sopocx.ocx) を使用しています。プレーヤーのステータス (「チャンネルをバッファリング中」、「チャンネルを再生中」、「チャンネルをオフライン中...」) とバッファリングの割合を取得したいと考えています。これらの情報は両方ともプレーヤーに表示されます(写真を投稿しようとしましたが、まだ十分な評判がありません)。
問題は、Sopcast の activex プラグインがこれらの情報を取得するためのメソッドを提供していないことです。
誰かがこれをどのように行うことができるかについて何か考えがありますか??
GetWindowText の結果は空の文字列になります...
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Runtime.InteropServices;
namespace test
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
[DllImport("user32.dll", CharSet = CharSet.Auto, SetLastError = true)]
static extern int GetWindowText(IntPtr hWnd, StringBuilder lpString, int nMaxCount);
private void testToolStripMenuItem_Click(object sender, EventArgs e)
{
IntPtr hwnd = sopcast.Handle;
StringBuilder lpString = new StringBuilder(256);
GetWindowText(hwnd, lpString, 256);
MessageBox.Show(lpString.ToString());
}
private void playToolStripMenuItem_Click(object sender, EventArgs e)
{
sopcast.SetSopAddress("sop://broker.sopcast.com:3912/123456789");
sopcast.SetChannelName("Channel");
sopcast.Play();
}
}
}