首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何在Xamarin中使用MediaPlayer获取曲目持续时间

在Xamarin中使用MediaPlayer获取曲目持续时间,可以通过以下步骤实现:

  1. 引入命名空间:首先,在代码文件的顶部引入Android.Media命名空间,以便使用MediaPlayer类。
  2. 创建MediaPlayer实例:使用MediaPlayer类创建一个MediaPlayer对象。
代码语言:txt
复制
MediaPlayer mediaPlayer = new MediaPlayer();
  1. 设置数据源:使用SetDataSource方法设置要播放的音频文件的路径或URI。
代码语言:txt
复制
mediaPlayer.SetDataSource(filePath);
  1. 准备MediaPlayer:使用Prepare方法准备MediaPlayer以进行播放。
代码语言:txt
复制
mediaPlayer.Prepare();
  1. 获取曲目持续时间:使用Duration属性获取曲目的持续时间,单位为毫秒。
代码语言:txt
复制
int duration = mediaPlayer.Duration;
  1. 格式化持续时间:将持续时间转换为更友好的格式,例如分钟和秒。
代码语言:txt
复制
TimeSpan durationTimeSpan = TimeSpan.FromMilliseconds(duration);
string formattedDuration = durationTimeSpan.ToString(@"mm\:ss");

完整的示例代码如下:

代码语言:txt
复制
using Android.Media;
using System;

namespace YourNamespace
{
    public class YourClass
    {
        public void GetTrackDuration(string filePath)
        {
            MediaPlayer mediaPlayer = new MediaPlayer();
            mediaPlayer.SetDataSource(filePath);
            mediaPlayer.Prepare();

            int duration = mediaPlayer.Duration;
            TimeSpan durationTimeSpan = TimeSpan.FromMilliseconds(duration);
            string formattedDuration = durationTimeSpan.ToString(@"mm\:ss");

            Console.WriteLine("Track duration: " + formattedDuration);
        }
    }
}

这样,你就可以在Xamarin中使用MediaPlayer获取曲目的持续时间了。

注意:上述示例代码是基于Android平台的,如果你需要在其他平台上使用Xamarin,可能需要进行适当的调整。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Android 8.0 功能和 API(翻译自Google官网)

通知超时:现在,使用 setTimeoutAfter() 创建通知时您可以设置超时。您可以使用此函数指定一个持续时间,超过该持续时间后,通知应取消。如果需要,您可以在指定的超时持续时间之前取消通知。...如需了解有关如何在 Android 8.0 中自动调整 TextView 的大小的详细信息,请参阅自动调整 TextView 的大小。 自适应图标 Android 8.0 引入自适应启动器图标。...使用 addTrack() 可混录所需的任意数量的曲目。 MediaMuxer 还可以添加一个或多个包含用户定义的每帧信息的元数据曲目。元数据的格式由您的应用定义。仅对 MP4 容器支持元数据曲目。...在使用 MediaExtractor 提取包含元数据曲目的文件时,元数据的 MIME 格式将提取到 MediaFormat 中。...在以前的 Android 版本中,想要跟踪用户帐号列表的应用必须获取有关所有帐号的更新,包括具有不相关类型的帐号。

2.9K30

VideoPad Video Editor Mac(强大的视频编辑工具)

VideoPad Video Editor for Mac是Macos上一款强大的视频编辑工具,拖放视频到VideoPad mac版里就能进行视频编辑,支持创建、导入、导出、编辑电影字幕、导入和混合音乐曲目等功能...图片VideoPad for Mac功能特点令人惊叹的视频转换和效果从各种视频剪辑过渡中进行选择3D视频编辑和2D到3D立体转换自定义应用过渡的持续时间标题和电影演职员表的叠加文字色度键绿屏视频制作创建可在任何项目上使用的视觉效果模板使用模板在几秒钟内创建标题文本动画使用易于使用的过渡效果在您自己的视频工作室中编辑电影...纯数字音频工具像专业人士一样导入和混合音乐曲目包括音频效果,如合唱,回声,失真等使用MixPad多轨混音软件制作您自己的自定义电影配乐只需单击按钮即可记录您自己的叙述使用免费音效库中的声音效果VideoPad

75320
  • iOS--React Native视频播放器插件

    在React Native移动平台项目开发中,除了React Native 提供的封装好的部分插件和原声组建外,在实际的项目中还需要使用到很多其他的插件,比如网络请求、数据库、相机、相册、通讯录、视频播放器...、浏览器、蓝牙连接、图片处理、消息推送、地图、统计、埋点等等APP开发中需要用到的功能,都为IDE开发平台提供封装好的插件,以便项目开发使用。...这篇文章重点介绍原生视频播放器插件的开发与使用。 源码Demo获取方法 如果需要React Native浏览器插件源码demo,欢迎关注 【网罗开发】微信公众号,回复【63】便可领取。...并在这个宏里面添加一个参数“MediaPlay”用来指定在 JavaScript 中访问这个模块的名字。 如果你不指定,默认就会使用这个 Objective-C 类的名字。...URL(远程、本地视频URL都可以) NSURL * url = [NSURL URLWithString:self.vedioURL]; //根据URL创建播放曲目

    1.1K10

    音乐标签管理工具:Yate for Mac

    支持m4v和mp4中的视频。读取所有ID3标签格式。写入ID3 v2.4或v2.3可选择写入ID3 v1标签。可定制的FLAC映射。在允许的情况下,每个字段类型支持多个值。...支持MPEG-4文件中的内容咨询,标识和AAC种类字段。导出/导入文件的元数据,包括图稿。在两台Mac之间同步应用程序首选项,(操作,模板等)。100个完全集成的自定义字段。UI面板布局的自定义预设。...重新编码可能在旧mp3文件中错误地识别为ISO-Latin-1的文本字段。每个窗口支持MacOS 10.14(Mojave)暗模式。文件浏览器,允许您遍历文件系统并在Yate中打开内容。...这些数据库存储在带有sidecar文件的CSV或TSV文件中,以增强Yate的使用。数据库可以包含相册中所有曲目的常用值以及特殊聚合字段,例如持续时间,曲目数,最低评级,平均评级,最高评级和标记源。...由于内容存储在CSV / TSV文件中,因此您可以在移动设备上随身携带这些数据库。这些数据库还可以指出缺少曲目的时间。

    71720

    dotnet 在 UOS 国产系统上使用 Xamarin Forms 创建 xaml 界面的 GTK 应用

    尽管和 WinForms 一样也能写出特别强大的应用,但是为了提升一点开发效率,咱开始使用 xaml 神器写界面。...本文告诉大家如何在 UOS 国产系统上,通过 Xamarin.Forms 使用 XAML 写界面逻辑,构建出 GTK 应用 本文将使用特别底层的方法告诉大家如何一步步创建,而不是告诉大家如何在 IDE...创建 GTK 全平台带界面应用 dotnet 在 UOS 国产系统上使用 MonoDevelop 进行拖控件开发 GTK 应用 如 dotnet 在 UOS 国产系统上使用 MonoDevelop 创建...obj 文件夹存放了很多依赖本机电脑的文件夹绝对路径的文件,如 nuget 还原里面的 project.assests.json 文件将会包含 fallback 路径,如果拷贝到 Linux 下的系统...在使用 Xamarin.Forms 的 GTK 应用,有两层入口,第一层是本机程序的入口,也就是 B 项目的 Program 文件的 Main 方法入口,第二层就是 Xamarin.Forms 的 App

    2.6K10

    【Unity3D插件】AVPro Video插件分享《视频播放插件》

    使用MediaPlayer脚本播放视频(将视频路径设置为视频文件的文件名) 使用其中一个显示脚本显示您的视频(如DisplayIMGUI, DisplayUGUI。...例如,如果您在Linux中运行编辑器,则虚拟视频播放器将出现在编辑器中,而真正的视频将在部署到受支持的平台时出现。如果部署到不受支持的平台,如三星电视,还会看到虚拟视频播放器。...有用的,如果你需要手动控制何时视频加载 CloseVideo() 关闭视频,释放内存 5.4.3 事件 MediaPlayer目前有以下事件: MataDataReady 当宽度、高度、持续时间等数据可用时调用...显示是通过AVPro的视频uGUI组件 Demo_uGui.unity 1.这个演示演示了如何在uGUI系统中显示视频。它使用画布层次结构中的DisplayUGUI组件。...ApplyToTextureWidgetNGUI.cs 将MediaPlayer组件生成的纹理应用到NGUI纹理widqet纹理槽中 Editor DisplayUGUIEditor.cs 控制如何在检查器中呈现

    4.5K20

    【Unity3D插件】AVPro Video插件分享《视频播放插件》

    使用MediaPlayer脚本播放视频(将视频路径设置为视频文件的文件名) 使用其中一个显示脚本显示您的视频(如DisplayIMGUI, DisplayUGUI。...例如,如果您在Linux中运行编辑器,则虚拟视频播放器将出现在编辑器中,而真正的视频将在部署到受支持的平台时出现。如果部署到不受支持的平台,如三星电视,还会看到虚拟视频播放器。...有用的,如果你需要手动控制何时视频加载 CloseVideo() 关闭视频,释放内存 5.4.3 事件 MediaPlayer目前有以下事件: MataDataReady 当宽度、高度、持续时间等数据可用时调用...显示是通过AVPro的视频uGUI组件 Demo_uGui.unity 1.这个演示演示了如何在uGUI系统中显示视频。它使用画布层次结构中的DisplayUGUI组件。...ApplyToTextureWidgetNGUI.cs 将MediaPlayer组件生成的纹理应用到NGUI纹理widqet纹理槽中 Editor DisplayUGUIEditor.cs 控制如何在检查器中呈现

    5.9K20

    android学习笔记----关于音频焦点Audio Focus

    AUDIOFOCUS_GAIN是用于未知持续时间的焦点请求,可能会很久,例如播放歌曲或视频。...对于AUDIOFOCUS_GAIN,它用于表示持续时间未知的音频焦点或音频焦点请求。...对于AUDIOFOCUS_LOSS,用于表示未知持续时间的音频焦点丢失。说明部分应该是永久失去 Audio Focus,对这里的例子来说,采取的操作应该是停止 MediaPlayer 并释放资源。...我将为 AudioManager创建一个全局变量并在生命周期 Activity 中初始化一次,接着在 onCreate 方法中,通过调用getSystemService 来初始化 AudioManager...当某项内容被点击后,我希望使用 AudioManager 来请求 Audio Focus,然后再设置 MediaPlayer 来播放声音。所以在ListView的点击监听事件里面操作。

    1.8K10

    .net core实践系列之短信服务-Api的SDK的实现与测试

    设计要点 尽量少的依赖 多形式方法重载 高可读性 从上三点得出,高可读的方法注释,方便使用的多重载(单条、多条、异步、同步),如涉及到枚举,不要依赖原有项目的其他库,应拷贝过来完整提供。...NET Standard的出现为了解决以编写一次的库来同时支持多个平台(.NET Framework、.NET Core、Xamarin)的使用。 ?...接口测试 单元测试 百度定义:单元测试(unit testing),是指对软件中的最小可测试单元进行检查和验证。 单元:可以是C语言中单元指一个函数,C#、Java里单元指一个类。...1.对于使用VS2017的可以先到工具-获取工具与功能,勾上Web性能与负载工具 ? 2.添加Web性能和负载测试项目,该项目只能是.NET Framework ?...3.添加负载测试,并选择本地负载测试,负载测试持续时间是此方案的测试总时间,测试迭代是测试方案的测试总次数 ? 4.输入方案场景名称,并选择思考时间,思考时间可以理解成客户操作的停顿时间。 ?

    1.6K10

    JNI线程相关

    注:Android develop中给的的编码建议是: 尽可能避免在使用受管理编程语言编写的代码与使用 C++ 编写的代码之间进行异步通信。这样可使 JNI 接口更易于维护。...在线程中获取或创建JNIEnv 分两种情况 线程中包含JNIEnv 如果一段代码无法通过其他方法获取自己的 JNIEnv,您应该共享相应 JavaVM,然后使用 GetEnv 发现线程的 JNIEnv...会阻止GC回收所引用的对象,不能在本地函数中跨函数使用,不能跨线前使用。 函数返回后局部引用所引用的对象会被JVM自动释放....关于全局引用,Android MediaPlayer中有一个应用场景: MediaPlayer中有好几个回调如onPrepared,onError等,都是native层回调java的postEventFromNative...函数将消息传递上来的. natvie回调java需要获取到MediaPlayer的object,这个object是java层的MediaPlayer通过jni接口传递给native层的,属于局部引用,而

    1.4K20

    AI陪你过圣诞!百首MIDI音乐数据集打造圣诞AI作曲家

    用户只要输入一个持续时间(以秒为单位,作为生成的歌曲时长),从三种乐器中选择一种(备选有钟琴、铃铛、单簧管),然后就可以等着收听AI作曲家的大作。 ?...传送门: https://christmas.madeby.ai/ 生成的歌曲时长最多可达2分钟,AI将尽力让生成的曲目和节奏接近圣诞音乐。完成后,用户可以通过电子邮件收到曲目链接。...从AI目前生成的曲目来看,这些曲子目前恐怕还上不了热歌排行榜。尽管如此,这个成果 - 开发团队解释说,这是大量训练的产物,还需要构建一个简单且复杂的系统。...他们最终确定使用LSTM网络,这是一种能够学习长期依赖性的递归神经网络。...据该团队称,在AWS的GPU服务实例(使用Nvidia V100-SXM2)中,对该模型进行全面优化和训练大约需要3个小时。

    1.1K30

    Kaggle | 全球听众最多的50首歌曲

    **长度:**歌曲的持续时间。**音质:**值越高,歌曲的音质越好。**言语:**价值越高,歌曲包含的口语词越多。**流行:**歌曲价值越高越受欢迎。...每行对应一个客户评论,并包含以下变量: Track.name:曲目的名称 艺术家姓名:艺术家姓名 曲目类型 每分钟的节奏 能量:一首歌的能量-值越高,能量越大。...长度:歌曲的持续时间。 音质:值越高,歌曲的音质越好。 言语:价值越高,歌曲包含的口语词越多。 流行:歌曲价值越高越受欢迎。...Matplotlib:Matplotlib就是Python绘图库中的佼佼者,它包含了大量的工具,你可以使用这些工具创建各种图形(包括散点图、折线图、直方图、饼图、雷达图等),Python科学计算社区也经常使用它来完成数据可视化的工作...数据中的Length,Per.Minute,Valence的std标准差都比较大,说明数据分布不均匀 三、 数据分析 1、最有活力的歌是什么?

    1.2K21

    Android音视频——系统播放器介绍(二)

    在上文Android音视频——系统播放器介绍(一)中,介绍到了状态,但是没有详细讲解,本篇就为大家带来MediaPlayer状态涉及到的方法。...不管有没有设置监听器,错误发生时MediaPlayer会进入Error状态。 为了重复使用同一个MediaPlayer对象,可以使用reset()方法把它从Error状态恢复到Idle状态。...Prepared MediaPlayer有两种途径到达 Prepared 状态,一种是同步方式,另一种是异步方式。同步方式主要使用本地音视频文件,异步方式主要使用网络数据,需要缓冲数据。...Started 在 MediaPlayer 进入 Prepared 状态后,上层应用即可设置一些属性,如音视频的音量。 screenOnWhilePlaying、looping 等。...在 MediaPlayer 中事先调 setLooping(boolean)并设置为true,表示循环播放,MediaPlayer 依然处于 Started 状态。

    86930
    领券