You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Android图库应用视频播放异常:Pixel3a正常GalaxyS23黑屏有声音

Android 14三星设备视频播放黑屏(有声音)的解决方法

1. 排查视图渲染兼容性问题

Android 14及三星One UI对视频渲染的硬件加速策略有调整,VideoView基于SurfaceView,在部分三星设备上可能出现渲染异常:

  • 替换为TextureView或ExoPlayer的PlayerView(推荐),后者对不同设备的兼容性更好。示例代码:
    // 布局文件中使用com.google.android.exoplayer2.ui.PlayerView
    PlayerView playerView = findViewById(R.id.player_view);
    SimpleExoPlayer player = new SimpleExoPlayer.Builder(this).build();
    playerView.setPlayer(player);
    
    Uri videoUri = Uri.parse(getIntent().getStringExtra("videoPath"));
    MediaItem mediaItem = MediaItem.fromUri(videoUri);
    player.setMediaItem(mediaItem);
    player.prepare();
    player.play();
    
  • 临时关闭硬件加速排查问题:在AndroidManifest.xml的<activity>标签中添加android:hardwareAccelerated="false",或在代码中给VideoView设置:
    videoView.setLayerType(View.LAYER_TYPE_SOFTWARE, null);
    

2. 检查视频编码参数兼容性

部分三星Android 14设备对视频的色彩空间、分辨率支持有特殊要求:

  • 用FFmpeg将视频转码为BT.709色彩空间(通用标准)测试:
    ffmpeg -i input.mp4 -c:v libx264 -colorspace bt709 -color_trc bt709 -color_primaries bt709 output.mp4
    
  • 降低视频分辨率至1080P、帧率至30fps,排除高规格视频的渲染适配问题。

3. 适配Android 14媒体权限与存储访问

Android 14收紧了媒体文件访问权限,确保权限配置正确:

  • 申请READ_MEDIA_VIDEO权限(替代旧的READ_EXTERNAL_STORAGE),代码中检查权限:
    if (ContextCompat.checkSelfPermission(this, Manifest.permission.READ_MEDIA_VIDEO) != PackageManager.PERMISSION_GRANTED) {
        ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.READ_MEDIA_VIDEO}, 100);
    }
    
  • 优先使用Content Uri访问视频文件,而非直接文件路径,避免存储访问限制导致的渲染异常。

4. 调整ExoPlayer配置

如果使用ExoPlayer仍有问题,尝试以下配置:

  • 升级至最新版ExoPlayer,在build.gradle中更新依赖:
    implementation "com.google.android.exoplayer:exoplayer-core:2.19.1"
    implementation "com.google.android.exoplayer:exoplayer-ui:2.19.1"
    
  • 强制启用软件解码,排查硬件解码兼容性问题:
    DefaultRenderersFactory renderersFactory = new DefaultRenderersFactory(this)
            .setEnableDecoderFallback(true)
            .setForceSoftwareDecoder(true);
    SimpleExoPlayer player = new SimpleExoPlayer.Builder(this, renderersFactory).build();
    

5. 三星设备特定适配

针对三星One UI的特性,添加以下配置尝试修复:

  • 在AndroidManifest.xml的<application>标签中添加三星媒体播放适配meta-data:
    <meta-data
        android:name="com.samsung.android.sdk.mediaplayback.enable"
        android:value="true" />
    
  • 检查三星设备系统更新,安装最新补丁(部分黑屏问题已通过系统更新修复)

内容的提问来源于stack exchange,提问作者Robert Davila

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.16 20:23:12