我想訪問Youtube視頻並在ListView中顯示視頻的縮略圖及其標題。點擊縮略圖時,應播放視頻。任何人都可以提出一些與我的需求或鏈接有關的示例程序。需要幫助創建YouTube視頻列表
0
A
回答
0
在這裏我的代碼播放你管視頻使用Urls。這可能無法提供您的完整要求,但您可以使用它。
我VideoPlayActivity.class(活動)
import java.io.File;
import android.annotation.SuppressLint;
import android.app.Activity;
import android.content.Context;
import android.content.SharedPreferences.Editor;
import android.media.MediaPlayer;
import android.media.MediaPlayer.OnCompletionListener;
import android.media.MediaPlayer.OnErrorListener;
import android.os.Bundle;
import android.view.Gravity;
import android.view.View;
import android.webkit.WebChromeClient;
import android.webkit.WebView;
import android.webkit.WebViewClient;
import android.widget.FrameLayout;
import android.widget.FrameLayout.LayoutParams;
import android.widget.RelativeLayout;
import android.widget.Toast;
import android.widget.VideoView;
@SuppressLint("SetJavaScriptEnabled")
public class VideoPlayActivity extends Activity {
RelativeLayout a;
VideoView video;
WChromeClient chromeClient;
WebView mWebView;
WebViewClient wvClient;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
a = (RelativeLayout) findViewById(R.id.web);
chromeClient = new WChromeClient();
wvClient = new WebViewClient();
mWebView = (WebView) findViewById(R.id.webView1);
mWebView.setWebChromeClient(chromeClient);
mWebView.setWebViewClient(wvClient);
mWebView.getSettings().setJavaScriptEnabled(true);
mWebView.getSettings().setDomStorageEnabled(true);
mWebView.loadUrl("http://www.youtube.com/embed/"+"YCR7F6h3q2c"+"?autoplay=0");
}
class WChromeClient extends WebChromeClient {
@Override
public void onShowCustomView(View view, CustomViewCallback callback) {
// TODO Auto-generated method stub
super.onShowCustomView(view, callback);
if (view instanceof FrameLayout) {
FrameLayout frame = (FrameLayout) view;
if (frame.getFocusedChild() instanceof VideoView) {
mWebView.setVisibility(View.GONE);
video = (VideoView) frame.getFocusedChild();
FrameLayout.LayoutParams par = new FrameLayout.LayoutParams(
LayoutParams.MATCH_PARENT,
LayoutParams.MATCH_PARENT);
par.gravity = Gravity.CENTER_HORIZONTAL;
video.setLayoutParams(par);
frame.removeView(video);
a.addView(video);
video.setOnCompletionListener(new OnCompletionListener() {
@Override
public void onCompletion(MediaPlayer mp) {
Toast.makeText(VideoPlayActivity.this,
"Video complited", Toast.LENGTH_LONG)
.show();
}
});
video.setOnErrorListener(new OnErrorListener() {
@Override
public boolean onError(MediaPlayer mp, int what,
int extra) {
Toast.makeText(VideoPlayActivity.this,
"Encountered some error", Toast.LENGTH_LONG)
.show();
return true;
}
});
video.start();
}
}
}
}
@Override
protected void onDestroy() {
android.os.Process.killProcess(android.os.Process.myPid());
Editor editor = getSharedPreferences("clear_cache",
Context.MODE_PRIVATE).edit();
editor.clear();
editor.commit();
trimCache(this);
super.onDestroy();
}
public static void trimCache(Context context) {
try {
File dir = context.getCacheDir();
if (dir != null && dir.isDirectory()) {
deleteDir(dir);
}
} catch (Exception e) {
// TODO: handle exception
}
}
public static boolean deleteDir(File dir) {
if (dir != null && dir.isDirectory()) {
String[] children = dir.list();
for (int i = 0; i < children.length; i++) {
boolean success = deleteDir(new File(dir, children[i]));
if (!success) {
return false;
}
}
}
// <uses-permission
// android:name="android.permission.CLEAR_APP_CACHE"></uses-permission>
// The directory is now empty so delete it
return dir.delete();
}
}
activity_main.xml中
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/web">
<WebView
android:id="@+id/webView1"
android:layout_width="match_parent"
android:layout_height="match_parent"
/>
</RelativeLayout>
清單文件
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.webviewchromclient"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk
android:minSdkVersion="8"
android:targetSdkVersion="15" />
<uses-permission android:name="android.permission.INTERNET"/>
<application
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" android:hardwareAccelerated="true">
<activity
android:name=".VideoPlayActivity"
>
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>
+0
視頻播放的不錯代碼 – 2012-07-30 13:13:29
0
你可以嘗試FinchVideo。它是一個緩存存儲結果的完整示例。
相關問題
- 1. 需要幫助創建循環列表視圖
- 2. 需要幫助創建透明的MP4 vidoes用於HTML5視頻
- 3. 需要幫助創建XPCOM ...!
- 4. 創建div需要幫助
- 5. 需要幫助創建hbm.xml
- 6. 需要幫助散列表
- 7. 需要幫助的音頻
- 8. 需要幫助創建一個解析表視圖控制器
- 9. 在java中轉換mp4視頻到wmv視頻需要幫助
- 10. Colorbox幫助!嵌入YouTube視頻
- 11. 需要幫助在java中創建縮放列表方法
- 12. 需要幫助才能在Wordpress中創建活動列表?
- 13. 需要幫助爲yoututbe視頻上傳建立http請求
- 14. 需要幫助創建SQL查詢
- 15. 安卓:需要幫助來創建UI
- 16. 創建MS Access報告需要幫助
- 17. 需要幫助創建一個Cookie
- 18. 需要幫助創建簡化密碼
- 19. 需要幫助創建佈局
- 20. 需要幫助來創建preg_replace_callback
- 21. Connect.registerUsers - 需要幫助創建賬戶PARAM
- 22. 需要幫助創建jquery插件
- 23. 需要幫助來創建div結構
- 24. 需要幫助創建MySQL查詢
- 25. 需要幫助從Java中創建AST
- 26. 需要幫助創建pid進程樹
- 27. 需要幫助創建調度服務
- 28. 創建int範圍需要幫助
- 29. 需要幫助創建Linq.Expression到Enumerable.GroupBy
- 30. 需要幫助來創建XSLT
您應該首先查看Youtube API。 – Luksprog 2012-07-26 04:15:59