c# - Unity播放视频报错 `PlayVideo.audio'隐藏继承成员 `UnityEngine.Component.audio'。如果打算隐藏,请使用 new 关键字

标签 c# android unity-game-engine

<分区>

using UnityEngine;
using System.Collections;
using UnityEngine.UI;

[RequireComponent (typeof(AudioSource))]

public class PlayVideo : MonoBehaviour {

public MovieTexture movie;
public AudioSource audio;

// Use this for initialization
void Start () {
    GetComponent<RawImage> ().texture = movie as MovieTexture;
    audio = GetComponent<AudioSource> ();
    audio.clip = movie.audioClip;
    movie.Play();
    audio.Play();
}

这个脚本在我玩的时候有效。但是当我为 android apk 构建时出现错误。我可以在安卓设备上播放视频吗?

最佳答案

Android 不支持 MovieTexture。

https://docs.unity3d.com/Manual/class-MovieTexture.html

5.6 中有新的 VideoPlayer。

https://docs.google.com/document/d/1gZa5z_jEEETDk8E_hbYXXjNhetRlM9eu8eTpbfMkRYY/edit

至于警告,曾经有一段时间所有 MonoBehaviour 都会获得一组其他脚本的引用。 Rigidbody、AudioSource、Transform……所有这些 Unity 类型。但是它被删除了,只有 Transform 通过了切割(很可能是因为它是唯一肯定会找到的组件)。

尽管它已被删除,但似乎他们忘记了完全删除引用,所以即使它们不可用,也会弹出警告(也许警告调试代码检查在编译时仍然存在,即使引用不存在)现有)。

可以忽略,加个宏:

#pragma warning disable 0108

使用不同的命名或添加新的关键字。

private new AudioSource audio;

编辑:如果您需要在 Androir 5.5 中播放视频,您可以使用:

https://docs.unity3d.com/ScriptReference/Handheld.PlayFullScreenMovie.html

将全屏播放。它基本上暂停了 Unity 应用程序,启动了一个视频播放器的新进程,您可以通过点击视频来停止该进程。没有进一步的控制,您不能缩小窗口。

另一种情况是从商店购买插件。只需搜索视频纹理并进行选择。

在这种情况下,它将使用渲染纹理来显示视频内容。因此,您可以在 UI 对象或世界对象上设置纹理。

关于c# - Unity播放视频报错 `PlayVideo.audio'隐藏继承成员 `UnityEngine.Component.audio'。如果打算隐藏,请使用 new 关键字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42899237/

相关文章:

c# - Unity定期设置PlayerPrefs数据

c# - 在编译 C# 应用程序时设置平台有什么不同吗?

c# - 我们可以在 asp.net 的事务范围内调用两种不同的方法吗?

c# - 编译大型 C# 解决方案? (450 万行代码)

java - Intent 后抽屉导航检查错误

image - Unity 中的莫比乌斯效应

c# - 如何通过辅助方法打印当前执行的方法名?

java - 更新到实现 'com.google.android.gms:play-services-ads:15.0.2' 和类路径 'com.google.gms:google-services:3.3.0' 后的 Gradle 错误

Android - 显示/隐藏 fragment 留下空白区域

javascript - 在同一页面上运行 2 个 Emscripten 脚本