播放器potplayer设置全屏时显示原始分辨率

Posted 胡安

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了播放器potplayer设置全屏时显示原始分辨率相关的知识,希望对你有一定的参考价值。

在看视频的时候,显示器是4k的但是视频只有1080p,于是在全屏的时候会出现画面的拉伸,但是画质却没有很好地提升,反而用原来的1080p看会好一点,并且希望周围黑边,减少干扰

搜索网络,发现有网友有同样的问题,将这个方法,再次记录一下

在点击颤动时显示全屏图像(英雄)

【中文标题】在点击颤动时显示全屏图像(英雄)【英文标题】:Show full screen image on tap flutter (Hero) 【发布时间】:2021-09-18 16:41:30 【问题描述】:

我有使用network to local file显示的图像

Hero(
                           tag: "customWidget",
                           child: Container(
                             width: context.screenWidth / 2,
                             height: context.screenHeight / 4,
                             child: NetworkToLocal(
                               mediaURL: element.payload.uri,
                               mediaType: 'image',
                             ),
                           ),
                         ),

我想添加功能,在点击图像后,我可以以全屏模式显示此图像。如何使用 hero 小部件?

在上面的截图中,添加时高亮元素发生错误

                       child: NetworkToLocal(
                            mediaURL: element.payload.uri,
                            mediaType: 'image',
                          ),

【问题讨论】:

【参考方案1】:

你使用英雄动画

import 'package:flutter/material.dart';

void main() => runApp(HeroApp());

class HeroApp extends StatelessWidget 
@override
Widget build(BuildContext context) 
return MaterialApp(
  title: 'Transition Demo',
  home: MainScreen(),
 );



class MainScreen extends StatelessWidget 
@override
Widget build(BuildContext context) 
return Scaffold(
  appBar: AppBar(
    title: Text('Main Screen'),
  ),
  body: GestureDetector(
    onTap: () 
      Navigator.push(context, MaterialPageRoute(builder: (_) 
        return DetailScreen();
      ));
    ,
    child: Hero(
      tag: 'imageHero',
      child: Image.network(
        'https://upload.wikimedia.org/wikipedia/commons/thumb/b/b6/Image_created_with_a_mobile_phone.png/1200px-Image_created_with_a_mobile_phone.png',
      ),
    ),
  ),
);



class DetailScreen extends StatelessWidget 
@override
Widget build(BuildContext context) 
return Scaffold(
  body: GestureDetector(
    onTap: () 
      Navigator.pop(context);
    ,
    child: Center(
      child: Hero(
        tag: 'imageHero',
        child: Image.network(
          'https://upload.wikimedia.org/wikipedia/commons/thumb/b/b6/Image_created_with_a_mobile_phone.png/1200px-Image_created_with_a_mobile_phone.png',
        ),
      ),
    ),
  ),
);


【讨论】:

您忘记在英雄小部件上添加一个键!)另外,请扩展您的答案,i.o 两个屏幕上的英雄动画。 @RavindraS.Patil 我试过上面的例子,它不适合我的情况。我无法在任何其他类中使用 URL。“mediaURL: element.payload.uri”,在上面的示例中,他们使用了网络图像小部件。 我想你不明白,它是如何工作的。您无法在屏幕之间共享已完成的小部件。英雄动画仅在具有在屏幕之间切换的标签的小部件上添加动画。所以一个屏幕上的英雄小部件不是另一个屏幕上的小部件! 如果你有一些缓存的图像,我认为从缓存中获取它并立即显示它对你来说不是问题。 尝试将元素声明为 var element ;或 var element = " ";

以上是关于播放器potplayer设置全屏时显示原始分辨率的主要内容,如果未能解决你的问题,请参考以下文章

potplayer播放的时候不想全屏怎么办

在 iOS 中显示全屏视频的视频分辨率

Potplayer大屏播放无法投射

iOS 状态栏显示/隐藏

在点击颤动时显示全屏图像(英雄)

Angular Route 在浏览器刷新时显示原始 JSON