チケット #36904

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

登録: 2016-12-28 22:50 最終更新: 2017-01-09 22:23

報告者:
担当者:
(未割り当て)
チケットの種類:
状況:
オープン
コンポーネント:
マイルストーン:
(未割り当て)
優先度:
5 - 中
重要度:
5 - 中
解決法:
なし
ファイル:
なし

詳細

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

チケットの履歴 (8 件中 3 件表示)

2016-12-28 22:50 更新者: nishimoto
  • 新しいチケット "MMメール2がNVDA日本語ベータ版で頻繁にエラー音を出す" が作成されました
2016-12-29 17:14 更新者: nishimoto
コメント

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

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

2016-12-29 20:03 更新者: nishimoto
コメント

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 更新者: nishimoto
コメント

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

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

2017-01-09 11:30 更新者: nishimoto
コメント

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

Python Issue29082

In 2.7.13, _ctypes.LoadLibrary no longer accepts Unicode objects

http://bugs.python.org/issue29082

2017-01-09 19:07 更新者: nishimoto
コメント

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

  • Windows 7
  • 音声エンジンは SAPI 5 のドキュメントトーカ
2017-01-09 19:53 更新者: nishimoto
コメント

コントローラークライアント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 更新者: nishimoto
コメント

以下、MLから引用:

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

添付ファイルリスト

添付ファイルはありません

編集

このチケットにコメントを追加するには、ログインが必要です » ログインする