如何通过区域、存储桶 ID、访问密钥和秘密密钥对 IAM 角色用户进行身份验证,并获取视频文件对象并在视频播放器中播放。实际上,我们已经在 AWS S3 中上传了视频文件,并向一名 IAM 角色用户授予了访问权限。
现在,在 flutter 应用程序中,我需要通过 accesskey、secretkey 对 IAM 用户进行身份验证,并获取视频对象并在视频播放器中播放,而无需在本地保存或下载。
我尝试使用插件,
flutter_aws_s3_client: ^0.5.0
const region = "<region>";
const bucketId = "<bucket id>";
final AwsS3Client s3client = AwsS3Client(
region: region,
host: "s3.$region.amazonaws.com",
bucketId: bucketId,
accessKey: "<accesskey>",
secretKey: "<secretkey>");
//object video name
final response = await s3client.getObject("example_test.m3u8");
Run Code Online (Sandbox Code Playgroud)
这里我得到的对象响应为 200,但是我如何传递并在视频播放器中播放这个视频文件?有什么办法吗?我尝试在expo播放器android video_player_plugin.dart中添加标题。但没有运气。
视频播放器插件
video_player: ^0.10.11+1
class _VideoAppState extends State<VideoApp> {
VideoPlayerController _controller;
@override
void initState() {
super.initState();
_controller = VideoPlayerController.network('//need to pass the videoUrl of AWS S3')
..initialize().then((_) …Run Code Online (Sandbox Code Playgroud) 我正在尝试做这样的事情Kotlin:
val top : Long = 1000000_1000000_1000000_1000000_1000000_1000000_1000000
Run Code Online (Sandbox Code Playgroud)
在Java它看起来像这样:
long TOP = 1000000_1000000_1000000_1000000_1000000_1000000_1000000L;
Run Code Online (Sandbox Code Playgroud)
该Java版本运行良好,在 Kotlin 中出现错误:
The value is out of range
Run Code Online (Sandbox Code Playgroud)
有没有人知道如何做到这一点?提前致谢。
致命异常显示在Firebase仪表板中。但非致命异常未显示在Firebase crashlytics和 中Firebase crash reporting。在非致命崩溃后,我重新启动了应用程序几次,但在Firebase dashboard. 依赖项是:-
implementation('com.crashlytics.sdk.android:crashlytics:2.9.1@aar') {
transitive = true
}
implementation 'com.google.firebase:firebase-core:11.8.0'
implementation 'com.google.firebase:firebase-messaging:11.8.0'
Run Code Online (Sandbox Code Playgroud)
以下是非致命异常的代码。
try {
throw new IndexOutOfBoundsException("Fake IndexOutOfBoundsException");
} catch (Exception e) {
Crashlytics.logException(e);
}
Run Code Online (Sandbox Code Playgroud) 更新后Android Studio,以3.1.0和kotlin版本1.2.31,我有这个问题Observables。
someVm 值为空。
class ViewModel1(car: Car) : BaseObservable() {
val someVm = ObservableField<ViewModel2>(ViewModel2(car))
shipmentVm.get()!!
}
class ViewModel2(car: Car) : ItemViewModel() {
val car= ObservableField(car)
}
open class ItemViewModel : BaseObservable() {
val first = ObservableField(false)
val last = ObservableField(false)
}
Run Code Online (Sandbox Code Playgroud)
非常感谢!
我面临这个问题,我已经做了一些搜索,但没有找到答案。
我想做什么?
我正在使用 Retrofit 从 API 获取一些数据,我可以获取数据,但我想在类中执行 ForEach 来查找我需要的属性。
data class ChampionList(
@SerializedName("version")
val version : String,
@SerializedName("data")
val data : Data) <------ wanna do the foreach in this property
Run Code Online (Sandbox Code Playgroud)
我想这样做,或者类似的事情:(这里我得到以下错误= for循环范围必须有一个'iterator()'方法)
for(dataChampion in ChampionList.Data){
//do something
}
Run Code Online (Sandbox Code Playgroud)
当我搜索时,我发现了一些关于Kotlin反射的内容,但我不明白:(
我发现但不起作用的另一件事是使用这个:
for(data in ChampionList::class.memberProperties){
//access data here, but got an unresolved reference for member properties
}
classes:
data class ChampionList(
@SerializedName("version")
val version : String,
@SerializedName("data")
val data : Data)
data class Data (
@SerializedName("Aatrox") val aatrox : Aatrox,
@SerializedName("Ahri") val …Run Code Online (Sandbox Code Playgroud) 要求:- 仅当设备仅连接到实际 WiFi 接入点而不是移动热点或蜂窝数据时才需要运行一些网络调用。
我们需要检查当前连接的网络是否是移动热点。目前,如果连接到 WiFi 或蜂窝网络,我正在使用以下代码。
Network activeNetwork = connectivityManager.getActiveNetwork();
NetworkCapabilities networkCapabilities = mConnectivityManager.getNetworkCapabilities(activeNetwork);
boolean isWiFi = networkCapabilities.hasTransport(NetworkCapablities.TRANSPORT_WIFI);
Run Code Online (Sandbox Code Playgroud)
为了确定 wifi 连接是否是移动热点,我尝试了一种解决方法,使用以下方法。
connectivityManager.isActiveNetworkMetered()
Run Code Online (Sandbox Code Playgroud)
随着活动连接计量检查,更新的条件如下
boolean isWiFiNotAMobileHotspot = networkCapablities.hasTransport(NetworkCapablities.TRANSPORT_WIFI) && connectivityManager.isActiveNetworkMetered();
Run Code Online (Sandbox Code Playgroud)
由于 isActiveNetworkMetered() 仅有助于确定我们是否连接了按流量计费的连接(具有每日/每月数据限制的限制。)
因此,对于大多数移动热点,它给出了预期的结果,但如果移动热点有无限数据计划,则 isActiveNetworkMetered() 返回 false。
因此,不幸的是,此解决方案并不是查找设备是否连接到移动热点的准确方法。
请帮助我找到解决方案,检查设备是否连接到移动热点。
在Android Studio 4.0我们必须在获得布局检查器之前选择活动之前。这有助于我们知道current活动名称。但在 Android Studio 4.0 中,自动将布局检查器与当前活动同步。我没有找到从当前堆栈中选择活动的任何手动方法。
如何在 Android Studio 4.0 实时布局检查器中选择如下图所示的活动?
基本上我需要知道当前活动名称和活动层次结构列表
我见过一些类似的应用程序,DataDex我想它们有像卡片视图和背景的动态颜色这样的东西,我们可以在这里看到:
这种颜色也适用于细节视图:
我认为这些颜色是从 IMAGE 本身生成的,但我不知道正在使用哪个库或 API。有什么提示吗?
我正在使用 flutter_map 将地图添加到我的项目中。我能够使用它并使用它的选项。但我想要一些在 flutter_map 中找不到的东西。
我想听位置变化并获取用户停止触摸屏幕时的最后位置。就像 GestureDetector 小部件中的 onTapUp 或 onLongPressUp 一样。
flutter_map 中有 onPositionChanged 选项,但每次位置改变时都会调用它,这是很多。一旦用户触摸屏幕,onPositionChanged 就会被调用,直到用户停止触摸屏幕。我可以从中获取最后的位置,但我想在位置发生变化时调用 API 以获取附近汽车的列表。每次调用 onPositionChanged 时都调用 API 并不好。
所以我希望能够在用户完成位置更改时(当他/她停止触摸屏幕时)调用 API。
这是我的 flutter_map 代码:
FlutterMap(
key: Key('map'),
mapController: main.mapController,
options: MapOptions(
center: LatLng(main.lat, main.long),
zoom: 14,
maxZoom: 18,
minZoom: 10,
onPositionChanged: (mapPosition, boolValue){
_lastposition = mapPosition.center;
}),
layers: [
TileLayerOptions(
errorImage: AssetImage('images/login_icon.png'),
urlTemplate:
"https://maps.wikimedia.org/osm-intl/{z}/{x}/{y}.png",
// subdomains: ['a', 'b', 'c'],
// subdomains: ['', '1', '2', '3', '4']
),
MarkerLayerOptions(
markers: main.markersStart +
main.markersDestination +
main.driverMarkers,
),
], …Run Code Online (Sandbox Code Playgroud) 我想在某些片段中隐藏 bottomNavigationView。
我试过下面的代码,但它有闪烁的效果。(bottomNavigationView 在 nextFragment 变得可见之前隐藏。
val navController = this.findNavController(R.id.nav_host_home)
navController.addOnDestinationChangedListener { _, destination, _ ->
when (destination.id) {
R.id.searchArticlesFragment -> bnvMain.visibility = View.GONE
R.id.articleFragment -> bnvMain.visibility = View.GONE
else -> bnvMain.visibility = View.VISIBLE
}
}
Run Code Online (Sandbox Code Playgroud)
我也试过另一个代码。但它会调整片段的大小。并在目标片段中给出 OutOfMemoryException。
supportFragmentManager.registerFragmentLifecycleCallbacks(object :
FragmentManager.FragmentLifecycleCallbacks() {
override fun onFragmentViewCreated(
fm: FragmentManager,
f: Fragment,
v: View,
savedInstanceState: Bundle?
) {
when (f) {
is SearchArticlesFragment -> bnvMain.visibility = View.GONE
is ArticleDetailsFragment -> bnvMain.visibility = View.GONE
else -> bnvMain.visibility = View.VISIBLE
}
}
}, true)
Run Code Online (Sandbox Code Playgroud)
请帮助我如何以正确和最好的方式隐藏底部导航视图?这是我可以隐藏底部导航视图的唯一方法吗?youtube …
android android-fragments kotlin android-navigation android-bottomnav
android ×9
kotlin ×4
flutter ×2
java ×2
amazon-s3 ×1
dart ×1
data-binding ×1
firebase ×1
fluttermap ×1
location ×1
observable ×1