我使用以下代碼播放來自url的視頻。它工作正常,除了它首先下載視頻,然後播放該視頻從url下載Android視頻
Uri uri = Uri.parse(URL);
video.setVideoURI(uri);
video.start();
但我想流的實時視頻,而不是下載它,然後播放
我使用以下代碼播放來自url的視頻。它工作正常,除了它首先下載視頻,然後播放該視頻從url下載Android視頻
Uri uri = Uri.parse(URL);
video.setVideoURI(uri);
video.start();
但我想流的實時視頻,而不是下載它,然後播放
我有YouTube視頻流的工作,那是沒有下載視頻。 這隻有在您播放YouTube視頻時纔有效。
您必須使用YouTube API並使用它來輕鬆管理您的任務。
您必須啓用YouTube服務並使用Developer Key
即可訪問YouTube API。
How to use YouTube API ?您可以Find Here相同的示例代碼。
指出樣品示例的我有使用
PlayerViewDemoActivity.java
& YouTubeFailureRecoveryActivity.java
和XML視圖按照需求。
播放視頻
public class PlayerViewDemoActivity extends YouTubeFailureRecoveryActivity
{
String youtube_id = "_UWXqFBF86U";
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.playerview_demo);
YouTubePlayerView youTubeView = (YouTubePlayerView) findViewById(R.id.youtube_view); // Replace your developer key
youTubeView.initialize(DeveloperKey.DEVELOPER_KEY, this);
}
@Override
public void onInitializationSuccess(YouTubePlayer.Provider provider,
YouTubePlayer player, boolean wasRestored)
{
if (!wasRestored)
{
player.cueVideo(youtube_id);
}
}
@Override
protected YouTubePlayer.Provider getYouTubePlayerProvider()
{
return (YouTubePlayerView) findViewById(R.id.youtube_view);
}
}
希望這將幫助你,讓我知道如果您有任何疑問。
我需要從我的服務器流視頻以及! –
@SourabhSaldi好的,我已發佈我的答案根據您的評論,'測試任何youtube視頻'.BTW你可以添加權限在配置文件,以便視頻不會下載,而你從服務器流式傳輸 –
偉大的示例!!!謝謝:) – Nevaeh
有流媒體工作的一些要求。
該文件可能無法 「正確」
http://developer.android.com/guide/appendix/media-formats.html
對於流式傳輸通過HTTP或RTSP,還有額外的要求視頻內容編碼:
- 對於3GPP和MPEG-4容器,
moov
原子必須位於原子的任何mdat
之前,但必須成功接收ftyp
原子。- 對於3GPP,MPEG-4和WebM容器,對應於相同時間偏移的音頻和視頻樣本可能不超過500 KB。爲了儘量減少這種音頻/視頻漂移,考慮以較小的塊大小交錯音頻和視頻。
您可能會在較舊版本的Android不支持它
HTTP 2.2中只添加漸進式流,HTTPS僅支持3.0+,直播只在支持甚至更高版本。
使用這樣:
Uri uri = Uri.parse(URL); //Declare your url here.
VideoView mVideoView = (VideoView)findViewById(R.id.videoview)
mVideoView.setMediaController(new MediaController(this));
mVideoView.setVideoURI(uri);
mVideoView.requestFocus();
mVideoView.start();
另一種方法:
String LINK = "type_here_the_link";
VideoView mVideoView = (VideoView) findViewById(R.id.videoview);
MediaController mc = new MediaController(this);
mc.setAnchorView(videoView);
mc.setMediaPlayer(videoView);
Uri video = Uri.parse(LINK);
mVideoView.setMediaController(mc);
mVideoView.setVideoURI(video);
mVideoView.start();
如果您收到此錯誤Couldn't open file on client side, trying server side Error in Android。還有Refer this。 希望這會給你一些解決方案。
For showing buffering you have to put progressbar of ProgressDialog ,... here i post progressDialog for buffering ...
pDialog = new ProgressDialog(this);
// Set progressbar message
pDialog.setMessage("Buffering...");
pDialog.setIndeterminate(false);
pDialog.setCancelable(false);
// Show progressbar
pDialog.show();
try {
// Start the MediaController
MediaController mediacontroller = new MediaController(this);
mediacontroller.setAnchorView(mVideoView);
Uri videoUri = Uri.parse(videoUrl);
mVideoView.setMediaController(mediacontroller);
mVideoView.setVideoURI(videoUri);
} catch (Exception e) {
e.printStackTrace();
}
mVideoView.requestFocus();
mVideoView.setOnPreparedListener(new OnPreparedListener() {
// Close the progress bar and play the video
public void onPrepared(MediaPlayer mp) {
pDialog.dismiss();
mVideoView.start();
}
});
mVideoView.setOnCompletionListener(new OnCompletionListener() {
public void onCompletion(MediaPlayer mp) {
if (pDialog.isShowing()) {
pDialog.dismiss();
}
finish();
}
});
它應該流 - 你測試的Android版本是什麼? –
您可以將URL發佈到視頻中,以便我們可以測試是否支持流式傳輸 – Peshal
可以將來自YouTube的任何視頻作爲示例 –