Ticket #36904

MMメール2がNVDA日本語ベータ版で頻繁にエラー音を出す

Open Date: 2016-12-28 22:50 Last Update: 2017-01-09 22:23

Reporter:
Owner:
(None)
Type:
Status:
Open
MileStone:
(None)
Priority:
5 - Medium
Severity:
5 - Medium
Resolution:
None

Details

MMメール2が NVDA 日本語ベータ版 2017.1jp-beta-161227 で頻繁にエラー音を出す問題について、 ログファイルを送っていただいたので、問題箇所だけ引用します。

nvdaController_isSpeaking に起因するエラーのようです。

なお、リリース版でもこのエラーは出ているはずで、 エラー音が鳴らないため気づかれていなかったと思います。

ERROR - unhandled exception (21:33:30):
Traceback (most recent call last):
  File "_ctypes/callbacks.c", line 340, in 'converting callback result'
TypeError: an integer is required
ERROR - stderr (21:33:30):
Exception
ERROR - stderr (21:33:30):
 in
ERROR - stderr (21:33:30):
<function nvdaController_isSpeaking at 0x04C7ADB0>
ERROR - stderr (21:33:30):
 ignored

Attachment File List

No attachments

Ticket History (3/8 Histories)

2016-12-28 22:50 Updated by: nishimoto
  • New Ticket "MMメール2がNVDA日本語ベータ版で頻繁にエラー音を出す" created
2016-12-29 17:14 Updated by: nishimoto
Comment

改めて nvdaController_isSpeaking について公開している説明を読んでみたら、 返り値が bool なのか int なのかよくわからないことに気付きました。

https://osdn.net/projects/nvdajp/wiki/ControllerClientEnhancement

2016-12-29 20:03 Updated by: nishimoto
Comment

Controller Client enhancement by NVDAJP の説明を更新しました。

https://osdn.net/projects/nvdajp/wiki/ControllerClientEnhancement

例えば isSpeaking の返り値は32ビット整数です。 この値が 0 の場合は False として、 この値が 0 以外の場合は True として解釈してください。

API の利用方法が NVDA 日本語版の仕様と異なる場合には NVDA が TypeError などを出し、 正しく API が動作しない可能性があります。

NVDA 日本語版の API 実装に関する不備を発見された場合は、 NVDA 日本語チームのチケットやメーリングリストでご報告いただければ幸いです。

なお、NVDA 日本語ベータ版 2017.1jp-beta-161229

http://s.nvda.jp/nvda_2017.1jp-beta-161229.exe

にて、ベータ版とリリース版の違いにかかわらず 日本語設定「NVDAのエラーを音で報告」 でエラー音を無効化できるようにしました。 デフォルトは報告なしです。

NVDA 対応アプリの開発においては「エラーを音で報告」を有効にしていただくことをお勧めします。 (設定変更後には念のため NVDA を再起動してください)

2017-01-09 07:41 Updated by: nishimoto
Comment

本家のチケットで点字ディスプレイドライバーに関連して、ちょっと似ているエラーログが報告されていて、 Python 2.7.13 から ctypes の挙動が変わったことの影響ではないかと言われています。

https://github.com/nvaccess/nvda/issues/6705#issuecomment-271184769

2017-01-09 11:30 Updated by: nishimoto
Comment

前述の件が関係あるとすれば

Python Issue29082

In 2.7.13, _ctypes.LoadLibrary no longer accepts Unicode objects

http://bugs.python.org/issue29082

2017-01-09 19:07 Updated by: nishimoto
Comment

再現条件として報告していただいたこと

  • Windows 7
  • 音声エンジンは SAPI 5 のドキュメントトーカ
2017-01-09 19:53 Updated by: nishimoto
Comment

コントローラークライアントAPI と SAPI5 音声エンジンの検証として、 下記の NvdaDemoApp 140616 が正常に動くことを確認しました。

bin/Debug に WpfApplication1.exe ができるので、同じ場所に下記の nvdaControllClient32.dll および nvdaControllClient64.dll を置いておく。

nvda_2016.4jp_controllerClientJp.zip

テスト環境 1

  • Windows 7 32bit
  • ドキュメントトーカ 日本語音声エンジン for Windows 1.2.4 (西本はこのバージョンしか持っていない)
  • NVDA 2016.4jp

テスト環境 2

  • Windows 10 Version 1607 64bit
  • SAPI5 Haruka Desktop
  • NVDA 2017.1jp-beta-170109

いずれも Test IsXXX を実行して isSpeaking などの結果が正常に取得される。 NVDA のログにエラーメッセージは出ていない。

2017-01-09 22:23 Updated by: nishimoto
Comment

以下、MLから引用:

  • Windows7
  • NVDA 2017.1jp-beta-161230
  • MMメール2は、最新の試用版
  • 音声エンジン ドキュメントトーカー、TOSHIBA音声エンジン
  • 本文を全文読みさせると、エラー音が鳴る

Edit

Please login to add comment to this ticket » Login