gpt4 book ai didi

android - 如何在 android 中播放来自远程 url 的实时视频流?

转载 作者:太空宇宙 更新时间:2023-11-03 10:28:21 24 4
gpt4 key购买 nike

我创建了一个在特定时间间隔触发通知服务的功能。通知可以是文本、图像或视频...

现在,对于视频,我先下载它然后播放它需要更多时间...那么有什么机制可以让我直接从远程 url 播放视频吗???

请帮帮我...我迫切需要尽快得到答案...

提前致谢......

看看我的代码 fragment::

public void onCreate(Bundle savedInstanceState) 
{
super.onCreate(savedInstanceState);
setContentView(R.layout.notificationvideo);

mVideoView = (VideoView) findViewById(R.id.video);
//pd=ProgressDialog.show(this, "Loading...", "Please Wait...",true,false);
playVideo();
//pd.dismiss();

img_back = (ImageView) findViewById(R.id.img_back);
img_back.setOnClickListener(new View.OnClickListener()
{
public void onClick(View v)
{
Intent int_back=new Intent(NotificationsVideoActivity.this,MyChannelsActivity.class);
startActivity(int_back);
finish();
}
});
}

private void playVideo()
{
try {
path = getIntent().getStringExtra("url");

Log.v(TAG, "path: " + path);
if (path == null || path.length() == 0) {
Toast.makeText(NotificationsVideoActivity.this, "File URL/path is empty",Toast.LENGTH_LONG).show();

}
else
{
// If the path has not changed, just start the media player
if (path.equals(current) && mVideoView != null)
{
mVideoView.start();
mVideoView.requestFocus();
return;
}
current = path;
mVideoView.setVideoPath(getDataSource(path));
mVideoView.start();
mVideoView.requestFocus();

}
}
catch (Exception e)
{
Log.e(TAG, "error: " + e.getMessage(), e);
if (mVideoView != null)
{
mVideoView.stopPlayback();
}
}
}

private String getDataSource(String path) throws IOException
{
if (!URLUtil.isNetworkUrl(path))
{
return path;
}
else
{
URL url = new URL(path);
URLConnection cn = url.openConnection();
cn.connect();
InputStream stream = cn.getInputStream();
if (stream == null)
throw new RuntimeException("stream is null");
File temp = File.createTempFile("mediaplayertmp", "mp4");
temp.deleteOnExit();
String tempPath = temp.getAbsolutePath();
FileOutputStream out = new FileOutputStream(temp);
byte buf[] = new byte[128];
//byte buf[] = new byte[8192];

do
{
int numread = stream.read(buf);
if (numread <= 0)
break;
out.write(buf, 0, numread);
} while (true);

try
{
stream.close();
}
catch (IOException ex)
{
Log.e(TAG, "error: " + ex.getMessage(), ex);
}
return tempPath;

}
}

最佳答案

试试这个 -

String path="http://www.ted.com/talks/download/video/8584/talk/761";
String path1="http://commonsware.com/misc/test2.3gp";

Uri uri=Uri.parse(path1);

VideoView video=(VideoView)findViewById(R.id.VideoView01);
video.setVideoURI(uri);
video.start();

关于android - 如何在 android 中播放来自远程 url 的实时视频流?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9714476/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com