- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
情况:将我的 Android 项目从带有 VisualOn 的旧 Ooyala SDK 更新到带有 Exoplyer 的最新 Ooyala SDK。通过 Amazon Fire Stick 播放视频。
问题:更新 SDK 后,该项目不再运行。我们收到此错误消息:
查看 NoClassDefFoundError,我觉得代码缺少包的导入(但是,总的来说我不知道)。
.
请帮我定位问题。解决方案是什么?
<小时/>Android Studio 错误日志:
07-12 07:15:15.141 19650-19650/com.ISN.firetv_isn E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.ISN.firetv_isn, PID: 19650
java.lang.NoClassDefFoundError: com.ooyala.android.player.exoplayer.ExoStreamPlayer
at com.ooyala.android.player.ExoMoviePlayer.createStreamPlayer(ExoMoviePlayer.java:12)
at com.ooyala.android.player.MoviePlayer.init(MoviePlayer.java:50)
at com.ooyala.android.OoyalaPlayerContextSwitcher.createAndInitPlayer(OoyalaPlayerContextSwitcher.java:107)
at com.ooyala.android.OoyalaPlayer.prepareContent(OoyalaPlayer.java:1469)
at com.ooyala.android.OoyalaPlayerContextSwitcher.processExitAdModes(OoyalaPlayerContextSwitcher.java:182)
at com.ooyala.android.OoyalaPlayerContextSwitcher.processAdModes(OoyalaPlayerContextSwitcher.java:162)
at com.ooyala.android.OoyalaPlayerContextSwitcher.startVideoWorkflow(OoyalaPlayerContextSwitcher.java:61)
at com.ooyala.android.OoyalaPlayer.onCurrentItemChangeComplete(OoyalaPlayer.java:697)
at com.ooyala.android.OoyalaPlayer.access$200(OoyalaPlayer.java:68)
at com.ooyala.android.OoyalaPlayer$1$1.run(OoyalaPlayer.java:510)
at android.os.Handler.handleCallback(Handler.java:739)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:135)
at android.app.ActivityThread.main(ActivityThread.java:5484)
at java.lang.reflect.Method.invoke(Native Method)
at java.lang.reflect.Method.invoke(Method.java:372)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:984)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:779)
07-12 07:15:15.423 19852-19852/? E/VendorContextExt: Failed to register system service "com.amazon.client.metrics.AndroidMetricsFactoryImpl". The class was not found for the provided classloader.
07-12 07:15:15.806 19044-19867/? E/AmazonAppstore.SideloadedAppManagerService: cannot update entry for package::com.ISN.firetv_isn
07-12 07:15:16.317 19819-19837/? E/SQLiteLog: (283) recovered 3 frames from WAL file /data/user/0/com.amazon.ags.app/databases/gamecircle_provider.db-wal
07-12 07:15:16.334 1005-1050/? E/InputDispatcher: channel '37e18ebe com.ISN.firetv_isn/com.isn.firetv_isn.KindlePlayer (server)' ~ Channel is unrecoverably broken and will be disposed!
代码
package com.isn.firetv_isn;
import android.content.Context;
import android.net.ConnectivityManager;
import android.net.NetworkInfo;
import android.os.Bundle;
import android.app.Activity;
import android.util.Log;
import android.view.View;
import android.widget.Toast;
import com.ooyala.android.*;
import com.ooyala.android.OoyalaPlayer;
import com.ooyala.android.OoyalaPlayerLayout;
import com.ooyala.android.PlayerDomain;
import com.ooyala.android.ui.OoyalaPlayerLayoutController;
import java.util.Observable;
import java.util.Observer;
public class KindlePlayer extends Activity implements Observer {
private static final String TAG = "This";
private static final String EMBED = "a"; //Embed Code, or Content ID
private static final String PCODE = "b";
private static final String DOMAIN = "http://www.ooyala.com";
private OoyalaPlayer player;
View decorView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_STABLE
| View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
| View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
| View.SYSTEM_UI_FLAG_HIDE_NAVIGATION // hide nav bar
| View.SYSTEM_UI_FLAG_FULLSCREEN // hide status bar
| View.SYSTEM_UI_FLAG_IMMERSIVE);
setContentView(R.layout.video_player);
decorView = this.getWindow().getDecorView();
OoyalaPlayerLayout playerLayout = (OoyalaPlayerLayout) findViewById(R.id.ooyalaPlayer);
player = new OoyalaPlayer(PCODE, new PlayerDomain(DOMAIN));
//set player controller
OoyalaPlayerLayoutController playerLayoutController = new OoyalaPlayerLayoutController(playerLayout, player);
playerLayoutController.setFullscreenButtonShowing(false);
//player = playerLayoutController.getPlayer();
if(isConnectedOnline()){
ConnectivityManager cm = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
if(cm.getActiveNetworkInfo().getType() == ConnectivityManager.TYPE_MOBILE){
Toast.makeText(KindlePlayer.this, "Now using Mobile Network", Toast.LENGTH_SHORT).show();
}
if (player.setEmbedCode(EMBED)) {
Log.d("Play", "Play");
player.play();
} else {
Log.d(TAG, "Asset failed");
}
} else {
Toast.makeText(KindlePlayer.this, "No Internet Connection", Toast.LENGTH_SHORT).show();
}
}
@Override
protected void onPause() {
super.onPause();
if (player != null) {
Log.d("suspend", "suspend");
player.pause();
}
}
@Override
protected void onResume() {
super.onResume();
if (player != null) {
Log.d("resume", "resume");
player.resume();
player.play();
}
}
@Override
public void update(Observable arg0, Object arg1) {
if (arg0 != player) {
return;
}
if (arg1 == OoyalaPlayer.TIME_CHANGED_NOTIFICATION_NAME) {
return;
}
if (arg1 == OoyalaPlayer.ERROR_NOTIFICATION_NAME) {
final String msg = "Error event received";
if (player != null && player.getError() != null) {
Log.e(TAG, msg, player.getError());
}
else {
Log.e(TAG, msg);
}
return;
}
Log.d(KindlePlayer.class.getSimpleName(), "Notification Received: " + arg1 + " - state: " + player.getState());
}
@Override
public void onWindowFocusChanged(boolean hasFocus) {
super.onWindowFocusChanged(hasFocus);
if (hasFocus) {
decorView.setSystemUiVisibility(
View.SYSTEM_UI_FLAG_LAYOUT_STABLE
| View.SYSTEM_UI_FLAG_IMMERSIVE
| View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
| View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
| View.SYSTEM_UI_FLAG_HIDE_NAVIGATION
| View.SYSTEM_UI_FLAG_FULLSCREEN
| View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY);}
}
public boolean isConnectedOnline() {
ConnectivityManager cm = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo ni = cm.getActiveNetworkInfo();
return ni != null && ni.isConnected();
}// end isConnectedOnline
}
最佳答案
向此主题添加更多信息后,您可以使用我们的示例应用程序作为在您的应用程序中集成 SDK 和其他所需功能的指南。
请访问我们的示例应用程序文档网站:
http://help.ooyala.com/video-platform/concepts/mobile_sdk_android_sampleapps.html
问候,Ooyala 技术支持工程团队
关于java - Exoplayer 的 Ooyala SDK - NoClassDefFoundError : com. ooyala.android.player.exoplayer.ExoStreamPlayer,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45064619/
我不确定我明白这里发生了什么。 请问有人可以解释一下吗? 我收到以下错误: Type of 'exoPlayer' doesn't match the type of the overridden v
我在尝试编译 exoplayer r1.5.2 存储库时遇到问题...。当我改用 com.google.android.exoplayer:exoplayer:r1.4.2 时没有问题。 编译代码如下
我有这个简单的 .m3u8 文件 #EXTM3U #EXT-X-VERSION:5 #EXT-X-MEDIA:TYPE=AUDIO,GROUP-ID="audio",NAME="English ste
为了避免应用程序中的任何 SCSS ,从后台线程使用 exoplayer 还是从主 ui 线程使用它更好? 注意:当我在主 ui 线程中创建一个 simpleExoPlayer 时: // 1. Cr
我有一个 exoplayer 我的第一个 Activity ,当我点击全屏按钮时,我打开一个新的 VideoActivity 全屏。我只发送我当前的位置并在该位置启动 VideoActivity。
我在 DemoPlayer 的基础上使用 Exoplayer。我想在 ExoPlayer.STATE_ENDED 被调度后在一些用户操作时从头开始重新启动/重播视频。 之后我尝试使用 seekTo(0
我在我的 android 应用程序中使用 exoplayer,在播放视频时我点击屏幕,带有 Controller 的显示不流畅,我想让它看起来流畅,就像淡入淡出..如何我可以这样做吗? 最佳答案 查看
我在 CardView 的 RecyclerView 中有一个 ex0player。 exoplayer 的高度需要根据包含的视频的高度以编程方式更改。此高度值以 像素 的形式从 API 调用返回。这
在 android 中有一个名为 的库。 Exoplayer 这与从给定 url 流式传输视频有关。 现在根据this firebase 不支持视频流,尽管您可以将 uri 从 url 传递到 vid
更新项目依赖项后,我在视频 android studio 应用程序中遇到这个 exoplayer not found 错误。 我不知道如何将旧的 Exoplayer 链接更新到 https://mvn
我在 android 中构建一个 expo 分离项目时遇到问题。当我构建项目时,控制台构建的输出显示:无法解析:com.google.android.exoplayer:exoplayer-smoot
情况:将我的 Android 项目从带有 VisualOn 的旧 Ooyala SDK 更新到带有 Exoplyer 的最新 Ooyala SDK。通过 Amazon Fire Stick 播放视频。
我制作了安卓音频应用程序。现在一些用户报告说,当他们在车内通过蓝牙连接设备时,应用程序没有响应媒体按钮(播放、暂停、下一步)。 同时,我用蓝牙扬声器测试了应用程序 - 播放/暂停按钮可按需工作。 车载
我希望在我的项目中实现 exoplayer。我已经成功实现了它,但是视频加载时间很慢。如何在 exoplayer 中实现或实现视频的快速加载?就像抖音一样——立即加载视频并开始播放 最佳答案 试试下面
遵循开发人员指南中给出的示例后,我得到以下信息: 05-23 16:25:22.002 11893-11942/com.app.videotest E/ExoPlayerImplInternal: S
我基于此 link 在我的应用程序中集成了 exoplayer . 我在 createCurrentContentIntent() 中添加了一个待处理的 Intent 。 return Pen
我正在阅读有关配置默认 exoplayer View 布局的教程: https://exoplayer.dev/ui-components.html 但是它不显示默认播放器布局的源代码 exo_pla
我想使用 PlayerView 在 exoplayer 中创建一个自定义时间栏: 不能被用户拖动,只能在视频中显示进度 更新:好的,所以我可以通过将 touch_target_height 设置为 0
07-03 18:51:01.600 16188-16266/? E/ExoPlayerImplInternal﹕ Internal runtime error. java.lang.Ill
使用 ExoPlayer我正在尝试同时播放两个音轨。 我的想法是创建两个 MediaSource , 并使用 MergingMediaSource 在它们之间“组合” . 这就是我所做的: U
我是一名优秀的程序员,十分优秀!