更新:我通过使用vlc-sdk for android解决了它。
所以我面临这个问题,我有一个URL,提供来自IP摄像头的流。
就像这样
RTSP://192.168.x.xxx:8554 / BWC
注意:没有像.mp4或.mov那样的扩展名
我在我的计算机上的VLC播放器和Android应用程序“rtsp player”中尝试了URL,两者都有效。他们都向我展示了凸轮的流。
现在我需要编写一个应用程序,它还显示来自凸轮的流,我必须用Xamarin编写它。
我有以下代码:
[Activity(Label = "StreamActivity", ScreenOrientation = ScreenOrientation.Portrait, HardwareAccelerated = true, Theme = "@style/Theme.AppCompat.Light.NoActionBar")]
public class StreamActivity : AppCompatActivity
{
String urlPrefix = "rtsp://";
String urlSuffix = ":8554/BWC";
VideoView streamView { get; set; }
protected override void OnCreate(Bundle savedInstanceState)
{
base.OnCreate(savedInstanceState);
SetContentView(Resource.Layout.StreamView);
var ipAddress = Intent.GetStringExtra("ip");
var url = urlPrefix + ipAddress + urlSuffix;
var vidUri = Android.Net.Uri.Parse(url);
streamView = FindViewById<VideoView>(Resource.Id.view_stream);
streamView.SetMediaController(new MediaController(this));
streamView.SetVideoURI(vidUri);
streamView.RequestFocus();
streamView.Start();
}
}
在主要活动中,我只需输入IP并点击一个按钮然后StreamActivity即开始,但在我按下按钮后,新活动开始,我收到一条错误消息:
无法播放此视频
在LogCat中,我得到以下警告和错误:
11-11 18:14:56.594:W / MediaPlayer(18879):无法打开rtsp://192.168.4.103:8554 / BWC:java.io.FileNotFoundException:无内容提供者:rtsp://192.168.4.103: 8554 / BWC
和
11-11 18:15:h.688:E / Media Player(18879):airror(100,0)
任何帮助,将不胜感激!
有一个名为Surge的解决方案可能有所帮助 - https://instil.co/surge/
您可以尝试在前缀和IP之间添加用户名和密码
var url = urlPrefix + username + ":" + password + "@" + ipAddress + urlSuffix;