如何在 Android 模拟器中运行 YouTube 视频

2023-12-27

我制作了一个程序,在列表视图中获取 YouTube 视频列表,并且还实现了 onClick

来源:- 我遵循了有关如何使用 youtube gdata 的教程。使用来自 youtube 的视频和 onclick 填充列表视图。源代码可在以下位置获取:

http://blog.blundell-apps.com/click-item-in-a-listview-to-show-youtube-video/ http://blog.blundell-apps.com/click-item-in-a-listview-to-show-youtube-video/

Problem:

每当我点击任何 YouTube 视频项行时,都会在下一个活动中获取特定视频,但每当我点击视频运行时,它每次都无法正常工作,只得到黑色空间

GetYouTubeUserVideosTask.java

 public class GetYouTubeUserVideosTask implements Runnable {

 public static final String LIBRARY = "Library";

 private final Handler replyTo;

 private final String username;


    public GetYouTubeUserVideosTask(Handler replyTo, String username) {
this.replyTo = replyTo;
this.username = username;
  }

  @Override
  public void run() {
try {

    HttpClient client = new DefaultHttpClient();

    HttpUriRequest request = new HttpGet
           ("http://gdata.youtube.com/feeds/api/users/
            GoogleDevelopers/uploads?v=2&alt=jsonc");
    // Get the response that YouTube sends back
    HttpResponse response = client.execute(request);
    // Convert this response into a readable string
    String jsonString = StreamUtils.convertToString
            (response.getEntity().getContent());
    // Create a JSON object that we can use from the String
    JSONObject json = new JSONObject(jsonString);

    // Get are search result items
    JSONArray jsonArray = json.getJSONObject("data").getJSONArray("items");

    // Create a list to store are videos in
    List<Video> videos = new ArrayList<Video>();

    for (int i = 0; i < jsonArray.length(); i++) {
        JSONObject jsonObject = jsonArray.getJSONObject(i);
        // The title of the video
        String title = jsonObject.getString("title");
        // The url link back to YouTube, this checks if it has a mobile url
        // if it doesnt it gets the standard url
        String url;
        try {
    url = jsonObject.getJSONObject("player").getString("default");
        } catch (JSONException ignore) {
    url = jsonObject.getJSONObject("player").getString("default");
        }

    String thumbUrl = jsonObject.getJSONObject
            ("thumbnail").getString("sqDefault");

        // Create the video object and add it to our list
        videos.add(new Video(title, url, thumbUrl));
    }
    // Create a library to hold our videos
    Library lib = new Library(username, videos);
    // Pack the Library into the bundle to send back to the Activity
    Bundle data = new Bundle();
    data.putSerializable(LIBRARY, lib);

    // Send the Bundle of data (our Library) back to the handler (our Activity)
    Message msg = Message.obtain();
    msg.setData(data);
    replyTo.sendMessage(msg);

// We don't do any error catching, just nothing will happen if this task falls over
} catch (ClientProtocolException e) {
    Log.e("Feck", e);
} catch (IOException e) {
    Log.e("Feck", e);
} catch (JSONException e) {
    Log.e("Feck", e);
}
    }

VideosListView.java

  public class VideosListView extends 
  ListView implements    android.widget.AdapterView.OnItemClickListener {

private List<Video> videos;
private VideoClickListener videoClickListener;

public VideosListView(Context context, AttributeSet attrs, int defStyle) {
    super(context, attrs, defStyle);
}

public VideosListView(Context context, AttributeSet attrs) {
    super(context, attrs);
}

public VideosListView(Context context) {
    super(context);
}

public void setVideos(List<Video> videos){
    this.videos = videos;
    VideosAdapter adapter = new VideosAdapter(getContext(), videos);
    setAdapter(adapter);
    // When the videos are set we also set an item click listener to the list
    // this will callback to our custom list whenever an item it pressed
    // it will tell us what position in the list is pressed
    setOnItemClickListener(this);
}

// Calling this method sets a listener to the list
// Whatever class is passed in will be notified when the list is pressed
// (The class that is passed in just has to 'implement VideoClickListener'
// meaning is has the methods available we want to call)
public void setOnVideoClickListener(VideoClickListener l) {
    videoClickListener = l;
}

@Override
public void setAdapter(ListAdapter adapter) {
    super.setAdapter(adapter);
}

// When we receive a notification that a list item was pressed
// we check to see if a video listener has been set

@Override
public void onItemClick(AdapterView<?> adapter, View v, int position, long id) {
    if(videoClickListener != null){
        videoClickListener.onVideoClicked(videos.get(position));
    }
}

视频点击监听器.java

 public interface VideoClickListener {

public void onVideoClicked(Video video);

  }

模拟器无法播放youtube视频,因为youtube有不同的不同格式,模拟器仅支持3gp视频,您可以在手机上测试它会正常工作。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在 Android 模拟器中运行 YouTube 视频 的相关文章

  • 在phonegap中播放本地声音

    我有一个 wav文件在我的www文件夹 我正在使用 jQuery 和以下代码 警报响起 但声音不播放 难道我做错了什么
  • 服务在后台运行?

    我正在构建的应用程序的功能之一是记录功能 我通过在服务中启动 MediaRecorder 对象来实现此目的 Intent intent new Intent v getContext RecordService class Messenge
  • 如何使用 (a)smack 在 Android 上保持 XMPP 连接稳定?

    我使用适用于 Android 的 asmack android 7 beem 库 我有一个后台服务正在运行 例如我的应用程序保持活动状态 但 XMPP 连接迟早会在没有任何通知的情况下消失 服务器表示客户端仍然在线 但没有发送或接收数据包
  • 如何在 Android 中创建刮刮卡?

    我需要为我在学校的期末项目创建一个 刮刮卡 应用程序 但找不到如何实现刮刮事件的方法 如何创建背景图像并在其上放置灰色矩形 所以当我刮刮这些矩形时我会看到他们下面的图片 实现必须在 Android 中 因为我还不知道如何在 Objectiv
  • Android,语言文件不起作用

    我现在正在创建一个 Android 应用程序 并尝试为我的母语添加语言文件 但在某种程度上 这对我不起作用 我尝试在两部不同的手机中加载该应用程序 但结果相同 之前创建过语言文件 效果良好 但这次不行 手机设置为瑞典语 语言文件适用于我创建
  • 明文 HTTP 流量...不允许

    我的程序从用户那里获取一个 URL 因此它可以向互联网上的任何网站发出请求 我试图让这成为可能 我查找了有关 Android HTTP Cleartext 错误的所有答案 并做了这个 但它仍然不允许我连接我的测试本地 PHP 服务器 我在这
  • 在 Android 中关闭 Spinner 中的下拉菜单

    在 Android 中打开和关闭微调器时 我需要为箭头图标设置动画 打开微调器时我可以旋转箭头 我只是放了一个setOnTouchListener on the Spinner 当下拉菜单关闭或隐藏时 问题就来了 因为我不知道如何在该操作上
  • Android Things 文件系统

    我正在 Android 上构建这个应用程序 我希望能够让它访问 U 盘上的媒体文件 甚至树莓派的 SD 卡上的媒体文件 我还不知道我将如何处理这些文件 但我只是想知道它是否可能 如果不是这样也没关系 我还有其他解决方案 但我想我会先从明显的
  • android studio 底部工具栏的“运行”选项卡消失了

    Android Studio 底部工具栏中曾经有一个 运行 选项卡 但该选项卡不再显示 怎么把它带回来 请检查下图以了解它消失之前的位置 Run 选项卡曾经位于 TODO 选项卡之前的红色圆圈中 查看 gt 工具窗口 gt 运行 Or us
  • 用于代码生成的 ANTLR 工具版本 4.7.1 与当前运行时版本 4.5.3 不匹配

    我正在开发一个 Android 应用程序 当前使用 DSL 和一些库 突然构建给了我这个错误 任务 app kaptDebugKotlin 失败 用于代码生成的 ANTLR 工具版本 4 7 1 与当前运行时版本 4 5 3 不匹配 用于解
  • NullPointerException org.chromium.android_webview.AwContents$AwViewMethodsImpl.onDragEvent

    大约 10 天前 我的应用程序开始记录此异常 在开发控制台上看到 java lang NullPointerException at org chromium android webview AwContents AwViewMethods
  • 如何在代码中设置TextView的文字颜色?

    在 XML 中 我们可以通过以下方式设置文本颜色textColor属性 比如android textColor FF0000 但如何通过编码来改变它呢 我尝试过类似的东西 holder text setTextColor R color R
  • Youtube 播放器 Iframe,在 Firefox 上有声音但没有视频

    我正在使用 YT Player API 在滑块内创建多个 iframe youtube 视频 第一个视频在 onYouTubeIframeAPIReady 之后调用 当我单击正常工作的下一个按钮时 会出现下一个视频 但是当我尝试在 Fire
  • BluetoothLeScanner 服务内部问题

    Update从Android 10以上我认为你需要ACCESS BACKGROUND LOCATION权限 因此 如果此代码在最新的 Android 版本上不起作用 就是针对此问题的 ACCESS BACKGROUND LOCATION 受
  • Android 依赖项:apklib 与 aar 文件

    据我了解 apklib包含代码 共享资源Maven aar文件由以下人员分发Gradle The aar与 apklib 的主要区别在于 类被编译并包含在 aar 根目录下的classes jar 中 然而apklib不能包含已编译的类文件
  • Android框架结构与MFC/Win32结构的比较?

    我为 Android 和 Windows 进行开发 使用 MFC 有时使用 win32 昨天我随意比较了这两个框架 它们显然非常非常不同 因此 Windows 开发与 Android 开发有很大不同 我想知道人们认为 Android 这样的
  • onTouch 给出奇怪的触摸点 Android

    我正在做的事情非常简单 我以前做过 但现在它没有按我的预期运行 无论如何 让我简要解释一下我正在尝试做什么以及我得到了什么 设想 我有一个RelativeLayout其中一个ImageView已放置 现在我设置touchlistener像这
  • 使用 eclipse 配置mockito 时出现问题。给出错误:java.lang.verifyError

    当我将我的mockito库添加到类路径中 并使用一个简单的mockito示例进行测试时 我尝试使用模拟对象为函数add返回错误的值 我得到java lang verifyerror 以下是用于测试的代码 后面是 logcat Test pu
  • 在 Android SDK 中通过单击按钮更改背景颜色不起作用

    我有一个简单的程序 可以在单击按钮后更改背景颜色 但它不起作用 public class ChangeBackgroundActivity extends Activity Called when the activity is first
  • SambaFileInputStream 和 FileInputStream 有什么不同?

    我需要从 samba 服务器流式传输视频 并且我使用 nanohttpd 在我的项目中创建简单的服务器 当我使用本地文件中的 fileinputstream 时 视频视图可以按设置播放视频 http localhost 8080 publi

随机推荐

  • 使用 Spring 按需创建 Bean

    我想在启动后以工厂模式创建一些 spring beans 例如 我经常有一些工作要做 并且需要创建一个任务 bean 它可能依赖于其他单例 spring bean 并执行它 可能有多个工作要同时执行 因此每个任务 bean 都需要是独立的
  • 第一个 DropDownList 更改后如何从数据库加载第二个 DropDown 列表

    我正在构建一个网络应用程序 在某些时候 用户需要将数据输入到表单中 该表单有几个文本字段和DropDownLists 其中一个 DDL 依赖于其先前的 DDL 发生的情况是 当用户从第一个 DDL 中选择一个值时 第二个 DDL 应该从数据
  • 预约调度算法(N个人,N个忙闲时段,约束-满足)

    问题陈述 我们有一位雇主想要面试 N 个人 因此安排了 N 个面试时段 每个人都有一个空闲 忙碌的时间表 给出一个算法 如果可能的话 将 N 个人安排到 N 个位置 如果不可能 则返回一个标志 错误 等 最快的运行时复杂度是多少 到目前为止
  • 玩!框架 - 处理 POST 请求

    这是处理登录 POST 请求的路由 POST login submit controllers Users loginSubmit user String password String 这是login scala html
  • 比较 2 个不同行和列之间的日期

    我在弄清楚这一点时遇到问题 这是一个示例表 我需要能够找到的是对于给定的客户 ID 和 Part ID Discontinue Date 大于下一行的 effective Date 的任何记录 这是一个客户定价表 因此第 53 行的 Dis
  • 有没有办法在 Spring XML 中指定默认属性值?

    我们正在使用一个属性占位符配置器在 Spring 配置中使用 java 属性 详细信息在这里 http static springsource org spring docs 2 5 x reference beans html beans
  • 使用 WinHTTP 和 Excel 配置代理

    我正在使用 WinHTTP 在 Excel VBA 宏中执行 GET 请求 但是 如果我尝试从具有代理的网络中的计算机发出请求 则它不起作用 如果我手动配置它 它可以工作 但我认为使用我正在开发的工具的人不会知道他们的代理服务器 有没有办法
  • 为什么 _.escape 会修改 Underscore.js 中的 / 字符?

    我正在浏览下划线 js api http underscorejs org escape我注意到 escape逃脱 lt gt and 人物 让我惊讶的是逃跑 有没有理由逃避 我不知道的角色 EDIT 好吧 看来是推荐的OWASP http
  • MVC 3 实体框架中从多对多链接表添加关系时发生主键冲突

    我已经阅读了这里的许多问题 这些问题乍一看似乎有类似的问题 但看起来并不完全相同 如果这个问题在某个地方得到了回答 我深表歉意 但就像我说的 我已经阅读了很多内容 但找不到答案 我正在使用实体框架和 MVC 3 我正在尝试向实体框架中的产品
  • JavaScript:V8 问题:小整数是否被合并?

    正在看这个V8设计文档 https docs google com document d 11T2CRex9hXxoJwbYqVQ32yIPMh0uouUZLdyrtmMoL44 edit 其中有一个部分用于Constant Pool En
  • CoreBluetooth配对反馈/回调

    感觉好像我在这里遗漏了一些东西 但是我如何获得有关密码保护的外围设备配对失败还是成功的反馈 当我连接受密码保护的外围设备时 会弹出密码 UIAlertView 并且外围设备会立即连接 调用 didConnectPeripheral 并断开连
  • MS Sql:条件 ORDER BY ASC/DESC 问题

    我想使查询中的排序成为有条件的 因此如果它满足条件 则应按降序排序 例如 SELECT FROM Data ORDER BY SortOrder CASE WHEN Direction 1 THEN DESC END 不要改变ASC or
  • 使用 NLTK 和 WordNet;如何将动词简单时态转换为现在时、过去时或过去分词形式?

    使用 NLTK 和WordNet https en wikipedia org wiki WordNet 如何将动词简单时态转换为现在时 过去时或过去分词形式 例如 我想编写一个函数 它会给我预期形式的动词 如下所示 v go presen
  • Docker:使用 dockerfile 在 Windows 容器上安装 chrome

    我正在尝试在我的 Windows 容器上安装 Chrome 我已经使用 dockerfile 创建了我的 docker 映像 并且我想使用此 dockerfile 安装 chrome 我尝试过使用以下命令 RUN apt get updat
  • 我可以在运行 VS 单元测试时进行调试吗?

    我想对使用自定义事件的用户组件进行单元测试 当不使用 VS 单元测试框架 debug assert 执行此操作时成功 当使用 VS 单元测试框架执行相同的操作时 断言失败 这是不合逻辑的 所以我想在使用 VS 框架进行单元测试时进行调试 但
  • C++ 后端和 C# 前端?

    我有一个项目 在该项目中 我必须每秒处理 100 条 如果不是 1000 条 消息 并相应地在图表上处理 绘制这些数据 用户将搜索一组数据 其中将实时绘制图表 而不必在图表上绘制数千个值 我无法理解使用 DLL 在 C 中进行大量消息处理
  • Android Studio 无法识别我的设备

    问题就在这里 我想在我的设备 Samsung Galaxy Ace 2 上运行 Android Studio 应用程序 但对我来说没有任何作用 告诉我我错过了什么 1 USB调试打开 2 ADB驱动程序已安装 在设备管理器中我可以看到And
  • 将视图或窗口添加到 MainWindow

    我在一些我无法理解的基本概念上遇到了困难 我希望有人能为我解决一些问题 因为我没有找到可以解释这一点的资源 或者也许 它在明亮的地方 但我只是看不到它 到目前为止的理解 主窗口包含菜单 因此或多或少是必要的 这info plist持有笔尖
  • Firebase 错误:TypeError:无法使用“in”运算符在未定义中搜索“_delegate”

    我是 firebase 的新手 过去两天在查询和删除集合中的文档时遇到了一些困难 具体来说 每次启动服务器时 我都会尝试清除公司虚拟数据的整个集合 然后再循环虚拟数据并将其写入集合 以防止重复 我已经能够将我的公司虚拟数据写入我的 公司 集
  • 如何在 Android 模拟器中运行 YouTube 视频

    我制作了一个程序 在列表视图中获取 YouTube 视频列表 并且还实现了 onClick 来源 我遵循了有关如何使用 youtube gdata 的教程 使用来自 youtube 的视频和 onclick 填充列表视图 源代码可在以下位置