我在Android应用程序中从服务器上的受保护目录流式传输视频文件时遇到问题。我使用的是基本的HTTP身份验证(htaccess)。
我在URL中发送用户名和密码,然后将其解析为URI,但它不起作用。我有一个Apache服务器,我在上面创建了一个目录,并在其中上传了一个视频文件,并用.htaccess
保护了该目录。
当我流式传输视频时没有。htaccess
保护它可以很好地流式传输,但当我使用受保护的目录时,它不会流式传输视频,并给出错误:
无法在客户端打开文件;正在尝试服务器端:java.io.FileNotFoundException:无内容提供商:werplay.com/LT_Data/LTWorkthroughVideos/test.mp4";
我给出了下面的代码片段。
public class MainActivity extends AppCompatActivity {
VideoView videoView;
String LINK = "http://user:pass@www.site.com/Folder1/Folder2/test.mp4";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
videoView = (VideoView)findViewById(R.id.videoView);
playServerVideo(false,LINK);
}
public void playServerVideo(boolean controls, String url)
{
Uri video = Uri.parse(url);
if (controls)
{
MediaController mediaController = new MediaController(this);
mediaController.setAnchorView(videoView);
videoView.setMediaController(mediaController);
videoView.setVideoURI(video);
videoView.start();
}
else
{
videoView.setVideoURI(video);
// videoView.
videoView.start();
}
}
我已经找到了这个问题的解决方案,出现这个错误是因为我在模拟器上运行应用程序,当在设备上测试相同的东西时,它运行得非常好。