我在播放视频流HLS m3u8时遇到问题.我用目标iOS9创建了一个新项目,并使用AVPlayer来制作视频流.虽然测试流正在运行,但我在Windows和Android应用程序中使用的所有其他视频流都无法与iOS AVPlayer类一起使用.您能否提供建议是否可以调整AVPlayer或可以使用哪个第三方现代库?更新:尝试Vitamio的演示应用程序,它的工作原理.
这是我使用的代码:
@IBAction func pressed(sender: AnyObject) {
// this url work, all others not
let url = NSURL(string:"http://devimages.apple.com/iphone/samples/bipbop/bipbopall.m3u8")
let player = AVPlayer(URL: url!)
let playerController = AVPlayerViewController()
playerController.player = player
self.addChildViewController(playerController)
self.myView.addSubview(playerController.view)
playerController.view.frame = self.myView.frame
player.play()
}
Run Code Online (Sandbox Code Playgroud) 你能帮忙设置 AVPlayer 的用户代理吗?
我有以下代码:
let url = NSURL(string:"http://devimages.apple.com/iphone/samples/bipbop/bipbopall.m3u8")
var headers: [String:String] = ["User-Agent": "myagent"]
let asset: AVURLAsset = AVURLAsset.URLAssetWithURL(url!, options: ["AVURLAssetHTTPHeaderFieldsKey": headers])
let playerItem = AVPlayerItem(asset)
player.replaceCurrentItemWithPlayerItem(playerItem)
player.play()
Run Code Online (Sandbox Code Playgroud)
它不起作用。如何在 Swift 中以正确的方式设置用户代理?
将所有库升级到 androidx 和最新版本的 Firebase 库后
我在使用 2 个不同版本的 dagger java 文件时出错,错误消息中的链接不起作用。问题发生在步骤:app:checkDebugDuplicateClasses。
我不直接在我的代码中使用匕首,使用
./gradlew app:dependencies
Run Code Online (Sandbox Code Playgroud)
我找到了什么com.google.android.gms:play-services-cast-framework:17.1.0用途com.google.dagger:dagger:2.22,但没有关于1.2.2.
Cause 1: java.util.concurrent.ExecutionException: java.lang.RuntimeException: java.lang.RuntimeException: Duplicate class dagger.Lazy found in modules dagger-1.2.2.jar (dagger-1.2.2.jar) and dagger-2.22.jar (com.google.dagger:dagger:2.22)
Duplicate class dagger.MembersInjector found in modules dagger-1.2.2.jar (dagger-1.2.2.jar) and dagger-2.22.jar (com.google.dagger:dagger:2.22)
Duplicate class dagger.Module found in modules dagger-1.2.2.jar (dagger-1.2.2.jar) and dagger-2.22.jar (com.google.dagger:dagger:2.22)
Duplicate class dagger.Provides found in modules dagger-1.2.2.jar (dagger-1.2.2.jar) and dagger-2.22.jar (com.google.dagger:dagger:2.22)
Duplicate class javax.inject.Inject found in modules javax.inject-1.jar (javax.inject-1.jar) …Run Code Online (Sandbox Code Playgroud) 我发现SeekBar有问题。在具有Android 4,5,6的设备上,我没有这样的问题,但是在具有Android 7的Samsung S8上,出现了进度条问题。如果删除旋转参数,则SeekBar变为水平,问题消失,但是我需要标准的垂直SeekBar。 更新:Nexus模拟器API 24(Android 7)上的相同问题。我已附加了我在Android 6(LG,Sony)和Android 7(Samsung S8)上运行的应用程序的2个屏幕截图和代码:
<SeekBar android:id="@+id/seekBar"
android:layout_width="100dp"
android:layout_height="42dp"
android:background="#20FFFFFF"
android:rotation="270"
android:layout_gravity="center"
>
</SeekBar>
Run Code Online (Sandbox Code Playgroud)
和完整的代码:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:orientation="vertical">
<ImageView
android:id="@+id/icon"
android:layout_width="42dp"
android:layout_height="24dp"
android:paddingTop="6dp"
android:background="#20FFFFFF"
android:layout_gravity="center"
android:src="@drawable/iconvolume" />
<LinearLayout
android:layout_width="42dp"
android:layout_height="100dp"
android:gravity="center">
<SeekBar android:id="@+id/seekBar"
android:layout_width="100dp"
android:layout_height="42dp"
android:background="#20FFFFFF"
android:rotation="270"
android:layout_gravity="center"
>
</SeekBar>
</LinearLayout>
</LinearLayout>
Run Code Online (Sandbox Code Playgroud)
我正在将画中画模式添加到我的应用程序中,但发现生命周期存在问题。官方文档说:“当您的活动切换到画中画时,系统会将活动置于暂停状态并调用活动的 onPause() 方法。视频播放不应暂停,如果活动在画中画模式下暂停,则应继续播放。 ” 但就我而言,进入画中画模式后,我有以下顺序:
07-19 17:03:40.094 Enter PiP mode
07-19 17:03:40.193 OnPause(
07-19 17:03:40.780 OnStop()
07-19 17:03:40.788 OnDestroy()
07-19 17:03:40.927 OnCreate()
07-19 17:03:40.937 OnStart()
07-19 17:03:41.014 OnResume
07-19 17:03:41.024 OnPause()
Run Code Online (Sandbox Code Playgroud)
怎么了?之后,我在一个小的画中画窗口中重新启动了一个应用程序。
public void Pip_Click(View v) {
if (android.os.Build.VERSION.SDK_INT >= 26) {
//Trigger PiP mode
try {
Rational rational = new Rational(simpleExoPlayerView.getWidth(), simpleExoPlayerView.getHeight());
PictureInPictureParams mParams = new PictureInPictureParams.Builder()
.setAspectRatio(rational)
.build();
appendLog("enter PiP mode");
enterPictureInPictureMode(mParams);
setFullScreen();
} catch (IllegalStateException e) {
e.printStackTrace();
}
} else {
Toast.makeText(MainActivity.this, "Not supported", Toast.LENGTH_SHORT).show();
} …Run Code Online (Sandbox Code Playgroud)