Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/drupal/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 安卓运动猴开始随机播放音频文件_Android_Android Mediaplayer_Audio Player_Monkey_Android Monkey_Android Music Player - Fatal编程技术网

Android 安卓运动猴开始随机播放音频文件

Android 安卓运动猴开始随机播放音频文件,android,android-mediaplayer,audio-player,monkey,android-monkey,android-music-player,Android,Android Mediaplayer,Audio Player,Monkey,Android Monkey,Android Music Player,我正在运行exerciser monkey来测试我的android应用程序。作为我应用程序的一部分,我播放媒体文件,这些文件给出了一个单词的发音。我把这些文件放在一个Android音乐播放器无法读取的目录中。然而,锻炼者猴子抛出一些事件序列,似乎激活了音乐播放器,然后在测试期间重复播放另一个mp3文件(不是来自我的应用程序)的开头。它是如何做到这一点的,这是我应该关心的吗 附加信息:即使我在应用程序中禁用MediaPlayer,问题仍然存在。FWIW,这里是从练习者猴子到产生声音的命令(最后一个

我正在运行exerciser monkey来测试我的android应用程序。作为我应用程序的一部分,我播放媒体文件,这些文件给出了一个单词的发音。我把这些文件放在一个Android音乐播放器无法读取的目录中。然而,锻炼者猴子抛出一些事件序列,似乎激活了音乐播放器,然后在测试期间重复播放另一个mp3文件(不是来自我的应用程序)的开头。它是如何做到这一点的,这是我应该关心的吗

附加信息:即使我在应用程序中禁用MediaPlayer,问题仍然存在。FWIW,这里是从练习者猴子到产生声音的命令(最后一个)的一系列输出:

   // Rejecting start of Intent { act=android.intent.action.VIEW dat=http://www.myurl.com/ cmp=com.android.browser/.BrowserActivity } in package com.android.browser
:Sending Pointer ACTION_DOWN x=437.0 y=183.0
:Sending Pointer ACTION_UP x=450.0 y=158.0
:Sending Pointer ACTION_DOWN x=5.0 y=58.0
:Sending Pointer ACTION_UP x=-4.0 y=58.0
:Sending Pointer ACTION_MOVE x=2.0 y=-2.0 <=== sound generated from this one

您的应用程序是否具有启动其他播放音乐的服务或应用程序的功能?例如,如果你有一个按钮,启动一个改变振铃音量的意图,猴子会按下这个按钮,引起振铃噪音。(根据我的经验,具有默认设置的monkey超出了应用程序的范围,并且无论如何都会更改振铃器设置)

我认为这与monkey发送各种键代码的事实有关,包括硬件键的键代码,而这些硬件键可能在被测设备上根本不存在

我在使用monkey时也遇到过类似的问题,并通过提供-v-v选项(重复-v可提高调试级别)和使用--throttle选项减慢速度来研究它。我还尝试了一些操作,以找到导致它发生的原因

我的命令行最后显示:

adb shell monkey -p package.undertest.com -s 214765 --throttle 500 -v -v 130
这表明,就在媒体播放器启动之前,我记录了以下内容:

Sleeping for 500 milliseconds
:SendKey (ACTION_DOWN): 90    // KEYCODE_FORWARD
:SendKey (ACTION_UP): 90    // KEYCODE_FORWARD
然后,我在停止媒体播放器后发出以下命令,确认KEYCODE_FORWARD确实启动了Galaxy S上的媒体播放器(doubleTwist):

adb shell input keyevent 90
请注意,90是上面日志中列出的键代码

通过将我的命令行更改为monkey来添加“-pct nav 0”,成功地阻止了它启动媒体播放器


我不知道在您的情况下,它是否可能是一个不同的关键代码,因此您可能需要进行实验,并且它可能不适合您使用monkey通过设置--pct nav 0来关闭所有基本导航事件的目的。

是的,它使用MediaPlayer。但是,即使我禁用了创建媒体播放器的“播放”命令,问题仍然会出现。最重要的是,它永远不会到达调用媒体播放器的活动。你可以尝试在猴子运行时观察logcat,看看它在播放声音时是否能提供任何额外信息。好主意。我已将结果发布到我的问题中。好的,正在调用AudioManager,因此您的应用程序必须使用振铃器或通知声音。不。没有什么。这是一个非常传统的应用程序。正如你提到的,monkey会改变铃声音量,尽管你在应用程序中什么都不做。我的也一样。我想不管它在UI上抛出什么事件,都会做类似的事情,尽管我想知道如何做。
adb shell input keyevent 90