ラジオを再生しようとすると、ラジオで何が起こるかのようなシリーズのMP3ファイルのリストを再生するように自動Djを試しています。 私は多くの問題を回避しようとしましたが、最終的にはshoutcastサーバーにmp3ファイルを送信し、そのサーバーの出力を再生することを考えました。私はその方法をやりません。 bass.radioにbass.netを使用しようとしました。それは私のコードですC#BroadCast Mp3ファイルをShoutCastサーバーに送信
private int _recHandle;
private BroadCast _broadCast;
EncoderLAME l;
IStreamingServer server = null;
// Init Bass
Bass.BASS_Init(-1, 44100, BASSInit.BASS_DEVICE_DEFAULT,IntPtr.Zero);
// create the stream
int _stream = Bass.BASS_StreamCreateFile("1.mp3", 0, 0,
BASSFlag.BASS_SAMPLE_FLOAT | BASSFlag.BASS_STREAM_PRESCAN);
l= new EncoderLAME(_stream);
l.InputFile = null; //STDIN
l.OutputFile = null;
l.Start(null, IntPtr.Zero, false);
// decode the stream (if not using a decoding channel, simply call "Bass.BASS_ChannelPlay" here)
byte[] encBuffer = new byte[65536]; // our dummy encoder buffer
while (Bass.BASS_ChannelIsActive(_stream) == BASSActive.BASS_ACTIVE_PLAYING)
{
// getting sample data will automatically feed the encoder
int len = Bass.BASS_ChannelGetData(_stream, encBuffer, encBuffer.Length);
}
//l.Stop(); // finish
//Bass.BASS_StreamFree(_stream);
//Server
SHOUTcast shoutcast = new SHOUTcast(l);
shoutcast.ServerAddress = "50.22.219.37";
shoutcast.ServerPort = 12904;
shoutcast.Password = "01008209907";
shoutcast.PublicFlag = true;
shoutcast.Genre = "Hörspiel";
shoutcast.StationName = "Kravis Server";
shoutcast.Url = "";
shoutcast.Aim = "";
shoutcast.Icq = "";
shoutcast.Irc = "";
server = shoutcast;
server.SongTitle = "BASS.NET";
// disconnect, if connected
if (_broadCast != null && _broadCast.IsConnected)
{
_broadCast.Disconnect();
}
_broadCast = null;
GC.Collect();
_broadCast = new BroadCast(server);
_broadCast.Notification += OnBroadCast_Notification;
_broadCast.AutoReconnect = true;
_broadCast.ReconnectTimeout = 5;
_broadCast.AutoConnect();
しかし、私は私のファイルが_broadCastが接続されていても、サーバーにストリーミングされることはありません。 コードや他の何かの解決策があれば。
私はこのパイプラインをどのように作成するかについて、ソースファイルのmp3ストリームを作る方法のいくつかのコードサンプルが必要です。 –
@code FFmpegを通してパイプラインをすべてパイプライン化したことはありますか?つまり、アプリケーション内で未処理のPCMストリームを作成し、それをFFmpegにパイプし、残りの部分を処理させますか?または、少なくともコーデック部分?また、EdCastのソースコードをチェックすることを検討することもできます。 https://github.com/DustyDrifter/AltaCast – Brad