在方向改变时保存实时视频流

时间:2019-05-04 22:17:40

标签: android mvvm screen-orientation live-streaming

我正在尝试制作一个显示实时流式视频(当前来自抽搐)的应用程序,

我遇到了方向变化的问题。每当方向发生变化时,它都会重新加载流。使用普通视频,我可以节省时间并从那时开始继续播放,但是使用实时流视频则无法使用。我也尝试过在清单中使用android:configChanges="orientation|screenSize",但我指出使用它不是一个好习惯。

我也在MVVM中进行此项目,因此任何存储的数据最有可能在ViewModel中。

这是我的代码:

VideoActivity

class VideoActivity : AppCompatActivity() {

    lateinit var videoViewModel: VideoViewModel
    lateinit var videoView : VideoView

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_video)
        videoView = findViewById(R.id.videoView)

        videoViewModel = ViewModelProviders.of(this).get(VideoViewModel::class.java)
        videoViewModel.videoData.observe(this, Observer {
            val video = Uri.parse(it)
            videoView.setVideoURI(video)
            videoView.requestFocus()
            videoView.setOnPreparedListener {
                videoView.start()
            }
        })

    }
}

VideoViewModel

class VideoViewModel (application: Application) : AndroidViewModel(application) {
    val videoData : MutableLiveData<String> = MutableLiveData()

    init {
        val videoURL =
            "https://video-weaver.fra02.hls.ttvnw.net/v1/playlist/CtIDniDZISZg6pdwWWtn7F96H-gSYWvF3ry6fGuRtSEKjCX6-K5R7ggMJhI7cDgngS6SeqgYVWIJKC-qEyy94XusXug8TT1s6mfDq1bQ2id7XeHKZgYS0fucGPPV-pDBCXFkDxLUclYsSon7jxM-t5ydBqOn5N1SOh2Jf1DBr4NmxAxUCtcNVg4UOvfLQrjtQM_AiATNibsFMyiQZRaRGQU96jNvAUJkLBUqPEAwOBbmJJZQbXp3AJIGIm8RiyJ0uufWiTYdQBu44Ri_jihP6QAtXLHjvwqcyMnWJDtL46fwb-QPkWiLm2XEJJfG6x1EUZ8V8Qk1s9A19PTHEp_c18_mc7TIoY-0P7qI7uurA4mQ1kqflkBXKujsMh_kdDfBCoU7UImYrORGe1BSTC8QHStiSSDdLoYwWoKcQGBSLNZXp4L6YtJHBMjXiykgiVZFS2NgoYCgl6rqEzCqb0QXTjNts3B0DmKh4J3V2l2keZh8xW-uymoUCXi7X9E-xOolHpTg_K79dhWitewwKJy0z8NxVMkbBrGeAo75Fl9-fmoIVDQqAGANywH4NQEbmtFH8sh4FnRdBfhWRM9FLYrre3CjGB-LaBAihRFe82vGJ7F8cvN62RIQZGIKfcl18Z53bjDPmV_vzhoMf2b95YbSnSvpzZHW.m3u8"
        videoData.postValue(videoURL)

    }
}

0 个答案:

没有答案