微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

将远程json文件加载到Android应用中的简单方法?视频视图

如何解决将远程json文件加载到Android应用中的简单方法?视频视图

我想以与Swift对应的方式运行。在Swift版本中,我将json加载到解析器中,该解析器以id(从最高到最低)的顺序加载列表,并显示缩略图标题(由json提供),并在单击时显示附加ID的视频。 / p>

如果您能提供任何资源或示例,我目前看不到与SwiftUI(特别是列表视图)设置类似的东西。

这是SwiftUI文件之一

import SwiftUI
import Combine

struct VideoList: View {
@Environment(\.presentationMode) private var presentationMode
@Observedobject private(set) var viewmodel: viewmodel
@State private var isRefreshing = false

var btnBack : some View { Button(action: {
    self.presentationMode.wrappedValue.dismiss()
    }) {
        HStack {
        Image("Home") // set image here
            .aspectRatio(contentMode: .fit)
            .foregroundColor(.white)
        }
    }
}

var body: some View {
    NavigationView {
        List(viewmodel.videos.sorted { $0.id > $1.id},id: \.id) { video in
            NavigationLink(
            destination: VideoDetails(viewmodel: VideoDetails.viewmodel(video: video))) {
                VideoRow(video: video)
                
            }
        }
        .onPullToRefresh(isRefreshing: $isRefreshing,perform: {
            self.viewmodel.fetchVideos()
        })
        .onReceive(viewmodel.$videos,perform: { _ in
            self.isRefreshing = false
        })
    }
    .onAppear(perform: viewmodel.fetchVideos)
    .navigationViewStyle(StackNavigationViewStyle())
    .navigationBarBackButtonHidden(true)
            .navigationBarItems(leading: btnBack)

}
}

这是它正在加载的json片段

{
"videos": [
    {
        "id": 97,"name": "name","thumbnail": "https://videodelivery.net//thumbnails/thumbnail.jpg","description": "October 11th,2020","video_link": "https://videodelivery.net//manifest/video.m3u8"
    },{
        "id": 96,

解决方法

https://riptutorial.com/android/example/29241/try-offline-disk-cache-first--then-go-online-and-fetch-the-image

这是缓存缩略图的一个很好的例子,请遵循以下步骤,唯一的变化是:您在适配器的getView方法中编写picasso.load。只需设置imageview为Picasso。现在,您可以在列表视图时传递视频URL通过在onItemCLickListener内使用一个意图然后在目标活动中进行轻拍,您可以拥有一个媒体播放器,您可以在其中使用该网址将其设置在媒体播放器上并播放视频。

此解决方案也适用于列表。

此外,由于Picasso默认使用内存缓存,因此我们也必须使用OKHTTP磁盘缓存,因为否则Picaso只会检查内存缓存中的缩略图,并且会失败。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。